Что такое «исключение первого шанса»? - PullRequest
94 голосов
/ 19 февраля 2009

Что именно является исключением первого шанса? Как и откуда это происходит в .NET-программе? И почему он назван этим специфическим именем (о каком «шансе» идет речь)?

Ответы [ 5 ]

71 голосов
/ 19 февраля 2009

Это концепция отладки. По сути, исключения вызываются в отладчик сначала , а затем в реальную программу, где, если она не обрабатывается, она отбрасывается в отладчик секунду раз, давая вам шанс сделать что-то с этим в вашей IDE до и после самого приложения. Похоже, это изобретение Microsoft Visual Studio.

16 голосов
/ 19 февраля 2009

Уведомления об исключении первого шанса выдаются при возникновении исключения. Вторые шансы уведомления, когда он не пойман. (Шанс - как при возможности взломать код в отладчике).

Обработка исключений первого и второго шанса

4 голосов
/ 08 июля 2014

Я только начал использовать отладчик и столкнулся с этим. В своем исследовании я нашел сообщение в блоге MSDN Что такое исключение из первого шанса? , которое прояснило его для меня.

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

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

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

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

0 голосов
/ 31 июля 2014

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

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

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

...