Стратегия обработки исключений - PullRequest
0 голосов
/ 29 июля 2010

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

Ответы [ 2 ]

0 голосов
/ 29 июля 2010

Это зависит.

В этих случаях я бы, вероятно, поместил код, который может генерировать исключение, в блок try / catch. Разные языки называют эту конструкцию чем-то по-разному - иногда это try / catch / finally, другие - try / исключением.

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

0 голосов
/ 29 июля 2010

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

Они часто выглядят примерно так:

try
{
   some_risky_thing();
}
catch(Exception e)
{
   handle_the_exception();
}

Перехватывая исключение, вы прекращаете его распространение вверх по стеку вызовов (где он в конечном итоге найдет пользователя).

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...