Подтвердить что ты не робот

Любой способ в Visual Studio не ломаться при метании конкретного исключения?

Есть ли атрибут pragma или debugger, который позволит отладчику не ломаться на бросание определенного исключения, хотя в меню Debug → Exceptions я сказал ему сломаться, когда какие-либо исключения CLR выбрасываются?

В общем, при разработке я хотел бы, чтобы он прерывал исключения во время отладки, чтобы я мог сразу их проверить. Иногда есть отдельные случаи, когда известно, что этот блок кода иногда вызывает исключения, и я обработал его с помощью try-catch. См. ответ на этот вопрос, где консенсусом было то, что try-catch является наиболее правильной ситуацией.

Я хотел бы иметь возможность установить атрибут метода (что-то аналогичное System.Diagnostics.DebuggerHiddenAttribute), которое просто игнорирует любые исключения, вызванные методом.

Кстати, я в настоящее время испытываю это в Visual Studio 2008, но я предполагаю, что есть либо ответ для всех версий, либо нет.

4b9b3361

Ответ 1

Прямой ответ можно найти в меню "Исключения" меню "Отладка". Это настройка для решения/проекта. (Инструменты > Параметp > Отладка - это общесистемный параметр.) См. Раздел справки "Отладчик Visual Studio", "Как разбить, когда исключение вызывается в http://msdn.microsoft.com/en-us/library/d14azbfh.aspx для получения более подробной информации. В диалоговом окне "Исключения" вы можете указать, какие исключения выбрасываются или какие исключения ломаются в отладчике.

Я нахожу, что получаю больше пользы от атрибута DebuggerStepThrough.

В общем, я оставляю исключение для исключения по умолчанию (Debug > Exceptions user-unhandled checked и Thrown unchecked) и добавляет атрибут DebuggerStepThrough для методов, в которых я не заинтересован в том, чтобы пройти через него, и я не заинтересован в каких-либо исключениях брошенный в пределах этого метода. Я редко использую DebuggerHidden и получаю больше пользы с DebuggerNonUserCode в библиотечном коде.