Возврат исключения - PullRequest
       0

Возврат исключения

1 голос
/ 13 апреля 2011

Я вижу много кода вроде:

try
{
    // Some code
}
catch (Exception e)
{
    throw;
}

Зачем кому-то нужно перехватывать и перебрасывать исключение, и в блоке catch больше ничего нет?

Ответы [ 6 ]

3 голосов
/ 13 апреля 2011

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

1 голос
/ 30 апреля 2015

Я предполагаю, что это просто для целей отладки - разработчик может установить точку останова в операторе throw и затем проверить, что находится в e.

1 голос
/ 13 апреля 2011

Такой код может потребоваться, чтобы избежать странного эффекта фильтров исключений.Для получения подробной информации см. http://www.pluralsight -training.net / community / blogs / keith / archive / 2005/03/31 / 7149.aspx (ссылка, найденная Брайаном в Зачем перехватывать и отбрасывать исключение вC #? thread).

Короткая версия - может быть, кто-то еще запустит код между моментом исключения - throw и catch block.В результате этот код может иметь доступ к некоторой информации, которая не предназначена для отображения (например, как в примере статьи, позволяющем запускать сторонний код в олицетворенном контексте).

Это важно для публичных библиотек и кодаэто позволяет сторонние плагины, как правило, не беспокоит разработчиков приложений.

0 голосов
/ 13 апреля 2011

C # предоставил очень простой синтаксис, чтобы обеспечить необходимую семантику перебрасывания все время, но, похоже, об этом мало кто знает.Это озадачило меня, поскольку по сути тот же синтаксис, что и в C ++: пустой оператор throw.

http://winterdom.com/2002/09/rethrowingexceptionsinc

0 голосов
/ 13 апреля 2011

Обычно вы увидите такую ​​структуру во время разработки, где разработчик использует try-catch, но еще не внедрил catch.

0 голосов
/ 13 апреля 2011

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

Строго говоря, это, по сути, ничего не делает.

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