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

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


Edit:

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


Edit:

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

Ответы

Ответ 1

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

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

[РЕДАКТИРОВАТЬ]

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

Exception Interface

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

Debugger breaking on User-unhandled exception