Как я могу разбить необработанное исключение в ASP.NET? - PullRequest
15 голосов
/ 07 октября 2008

При отладке приложения в Visual Studio есть 2 варианта взлома исключений. Прерывание, как только выдается исключение, и прерывание только тогда, когда исключение не обнаружено. Это прекрасно работает при разработке настольных приложений. Однако при разработке приложений ASP.NET все исключения в конечном итоге обнаруживаются кодом в IIS. Можно ли отключить это поведение, чтобы отладчик не работал, когда мой код приложения ASP.Net не смог перехватить исключение?


Edit:

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


Edit:

Похоже, что это не проблема в Visual Studio 2008. В Visual Studio 2003 все исключения обрабатывались как пользовательские, поскольку среда выполнения ASP.NET перехватила все исключения, чтобы не прерывать процесс веб-сервера. Похоже, что в Visual Studio 2008 этот тип перехвата исключений не учитывается при проверке необработанных пользователем исключений.

1 Ответ

22 голосов
/ 07 октября 2008

В разделе «Отладка-> Исключения» проверьте столбец «Брошенный» Общих исключений времени исполнения (как минимум). Отметьте «Брошенный» для других исключений, которые вас интересуют.

Теперь, если отладчик подключен (активная отладка или «Присоединить к процессу»), ваше приложение ASP.NET сломается в исключении CLR (или в любом другом выбранном вами исключении).

[EDIT]

Если вы хотите разбить только на необработанные исключения, в разделе «Отладка-> Исключения» снимите флажок «Брошено» на всех типах исключений и убедитесь, что «Необработанный пользователь» отмечен для интересующих вас исключений. в.

Exception Interface

Затем, если отладчик подключен, ваше приложение ASP.NET будет зависать при каждом выбранном вами необработанном исключении, независимо от того факта, что среда выполнения в конечном итоге будет перехватывать исключение. Пример:

Debugger breaking on User-unhandled exception

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