Что такое «исключение первого шанса»?
-
05-09-2019 - |
Вопрос
Что именно представляет собой исключение первого шанса?Как и откуда он возникает в программе .NET?И почему он назван таким странным именем (о каком «шансе» идет речь)?
Решение
Это концепция отладки.В основном исключения выбрасываются в отладчик первый а затем к реальной программе, где, если она не обрабатывается, она передается отладчику второй время, давая вам шанс что-то сделать с ним в вашей IDE до и после самого приложения.Похоже, это изобретение Microsoft Visual Studio.
Другие советы
Уведомления об исключении первой возможности создаются при возникновении исключения.Уведомления о втором шансе — это когда оно не перехвачено.(Шанс - как возможность взломать код в отладчике).
Я только начал использовать отладчик и столкнулся с этим.В ходе своего исследования я нашел сообщение в блоге MSDN. Что такое исключение первого шанса? это прояснило для меня ситуацию.
Для меня важным выводом из этой записи в блоге является то, что она относится к уведомлению отладчика, а не к чему-то, что мой код обязательно должен будет обрабатывать, и, что наиболее важно, «сообщения об исключении первого шанса чаще всего не означают, что есть проблема в код."
Во время отладки приложения отладчик получает уведомление при каждом обнаружении исключения.На этом этапе приложение приостанавливается, и отладчик решает, как обработать исключение.Первый проход через этот механизм называется исключением «первого шанса».
В зависимости от конфигурации отладчика он либо возобновит работу приложения и передаст исключение, либо оставит приложение приостановленным и перейдет в режим отладки.Если приложение обрабатывает исключение, оно продолжает работать нормально.
Сообщения об исключении первого шанса чаще всего не означают, что в коде есть проблема.Для приложений/компонентов, которые корректно обрабатывают исключения, сообщения об исключении первой возможности позволяют разработчику узнать, что исключительная ситуация возникла и была обработана.
С точки зрения разработчика, это скорее исключение второго шанса, потому что это будет означать это не было обработано в коде;поэтому приложение будет остановлено.
Их может быть много, но больше всего следует волноваться, опять же, с точки зрения разработки, это второй шанс, потому что он приведет к сбою приложения.