Предположим, у нас есть следующий метод на бизнес-уровне. Как лучше всего сообщить слою пользовательского интерфейса, что что-то пошло не так, и выдать сообщение об ошибке? Должен ли метод возвращать пустую строку, когда он был в порядке, в противном случае сообщение об ошибке, или он должен генерировать другое исключение в коде перехвата, оборачивающем перехваченное исключение? Если мы выберем второй вариант, то пользовательский интерфейс должен иметь еще одну попытку, поймать, что слишком много, возможно, поймать. Вот псевдокод для первого варианта.
public String updateSomething()
{
try
{
//Begin transaction here
dataLayer.do1();
dataLayer.do2();
dataLayer.doN();
//Commit transaction code here
}
catch(Exception exc)
{
//Rollback transaction code here
return exc.message;
}
return "";
}
Является ли это хорошей практикой или я должен бросить другое исключение в улове (тогда метод будет недействительным)?