Вы действительно должны определить свое собственное исключение: DataNotFoundException.
Вы не должны использовать базовый класс Exception, поскольку, когда вы поймаете его в вызывающем коде, вы напишите что-то вроде
try
{
int i;
GetData(i);
}
catch(Exception e) //will catch many many exceptions
{
//Handle gracefully the "Data not Found" case;
//Whatever else happens will get caught and ignored
}
Где при перехвате только ваше DataNotFoundEXception получит только тот случай, который вы действительно хотите обработать.
try
{
int i;
GetData(i);
}
catch(DataNotFoundException e)
{
//Handle gracefully the "Data not Found" case;
} //Any other exception will bubble up
Существует класс с именем SqlException, когда есть проблемы с движком SQL, но лучше не перегружать его своей бизнес-логикой