Рекомендации по управлению исключениями в Java или C# [закрыто]



Я застрял, решая, как обрабатывать исключения в моем приложении.



много, если мои проблемы с исключениями происходят из 1) доступ к данным через удаленную службу или 2) десериализация объекта JSON. К сожалению, я не могу гарантировать успех ни для одной из этих задач (вырезать сетевое соединение, искаженный объект JSON, который находится вне моего контроля).



в результате, если я столкнусь с исключением, я просто поймаю его в функции и верну FALSE вызывающему. Моя логика такова что все вызывающий действительно заботится о том, если задача была успешной, а не почему она не была успешной.



вот пример кода (в JAVA) типичного метода)



public boolean doSomething(Object p_somthingToDoOn)
{
boolean result = false;

try{
// if dirty object then clean
doactualStuffOnObject(p_jsonObject);

//assume success (no exception thrown)
result = true;
}
catch(Exception Ex)
{
//don't care about exceptions
Ex.printStackTrace();
}
return result;
}


Я думаю, что этот подход прекрасен, но мне действительно интересно узнать, какие лучшие практики для управления исключениями (должен ли я действительно пузырить исключение вплоть до стека вызовов?).



в резюме ключевых вопросов:




  1. это нормально перехватывать исключения, но не пузырить их или официально уведомлять систему (либо через журнал, либо через уведомление пользователя)?

  2. какие рекомендации существуют для исключений, которые не приводят ко всему, что требует блока try/catch?


Follow Up / Edit



Спасибо за все отзывы, нашел несколько отличных источников по управлению исключениями в интернете:




Кажется, что управление исключениями является одной из тех вещей, которые варьируются в зависимости от контекста. Но самое главное, нужно быть последовательным в том, как они управляют исключениями в системе.



дополнительно следите за кодом-rot через чрезмерные попытки / уловы или не давая исключения его уважение (исключение предупреждает систему, что еще нужно предупредить?).



кроме того, это довольно выбор комментарий от m3rLinEz.




Я склонен согласиться с Андерсом Хейлсбергом и вами, что большинство звонящих только
заботьтесь, если операция прошла успешно или нет.




из этого комментария он поднимает некоторые вопросы, чтобы думать о том, когда работа с исключениями:




  • в чем смысл этого исключения бросается?

  • как это имеет смысл, чтобы справиться с этим?

  • действительно ли вызывающий абонент заботится об исключении или им просто важно, был ли вызов успешным?

  • заставляет вызывающего абонента управлять потенциальным исключением изящно?


  • ты проявил уважение к idoms языка?


    • вы действительно нужно вернуть флаг успеха, как логическое? Возвращение boolean (или int) - это скорее c-образ мышления, чем Java (в Java вы бы просто обработали исключение).

    • следуйте за конструкциями управления ошибками, связанными с языком :)!



535   0  

Comments

    Ничего не найдено.