В какое время нужно обрабатывать исключения для методов? - PullRequest
0 голосов
/ 26 марта 2012

Мой вопрос связан с обработкой исключений.

Если у меня есть, например, три метода, подобных этому:

Private void Method1()
{
   //My code ...
}

Private void Method2()
{
   //My code ...
}

Private void Method3()
{
   //My code ...
}

И я вызываю три метода в событии загрузки страницы следующим образом:

void Page_Load()
{
  if(!Page.IsPostBack)
    {

       Method1();
       Method2();
       Method3();
    }
}

Какова лучшая практика для обработки исключений.[Try and Catch] исключение для каждого метода, я имею в виду реализацию метода. Или просто оберните вызов трех методов одним [Try-Catch] в загрузке страницы ...

Ответы [ 3 ]

3 голосов
/ 26 марта 2012

Вам следует только try{}catch{}, если вы знаете, как восстанавливаться после исключения.

Во всех случаях рекомендуется использовать глобальный / top try{}catch{} / обработчик ошибок для регистрации ошибок.

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

1 голос
/ 26 марта 2012

Посмотрите на мой ответ здесь .Это довольно обширная тема, но я суммировал несколько моментов, на которые следует обратить внимание.Это далеко не окончательный ответ, но я суммировал 5 баллов, которые могут помочь вашему решению.

0 голосов
/ 26 марта 2012

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

Но, насколько я знаю, лучше всего использовать try catch только при работе с внешними источниками.(т. е. файловый ввод-вывод, обмен данными с базой данных и т. д.) Это связано с тем, что попытка catch приводит к некоторым издержкам.

(при голосовании, пожалуйста, скажите, почему. Это помогает мне, но также и человеку, который задал вопрос.)

Редактировать: Смотрите мой последний комментарий.Как уже отмечали другие, размещать блок try / catch везде не имеет никакого смысла!

...