Как я могу остановить выполнение для ВСЕХ исключений во время отладки в Visual Studio? - PullRequest
3 голосов
/ 01 июня 2009

В моем коде в настоящее время у меня есть настройка обработки исключений, которая записывает исключения в текстовые файлы. Однако, когда я отлаживаю код, я бы предпочел не обрабатывать исключения и позволить останавливать выполнение, а не читать файл, устанавливать точку останова и т. Д. Есть ли простой способ сделать это, используя конфигурации Build и Release (что-то как директива препроцессора, которую я мог бы использовать, чтобы закомментировать часть кода обработки исключений)?

Оказывается, что есть лучшее решение, чем первоначальный вопрос, см. Первый ответ.

Ответы [ 5 ]

7 голосов
/ 01 июня 2009

C # имеет директивы препроцессора (например, if, define и т. Д.), Которые вы можете использовать для этой цели.

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

4 голосов
/ 01 июня 2009

Попробуйте что-то вроде этого:

if ( System.Diagnostics.Debugger.IsAttached )
    System.Diagnostics.Debugger.Break();
else 
    LogException(); 
1 голос
/ 22 октября 2009
1 голос
/ 01 июня 2009
#if DEBUG
// Something
#else
// Something else
#endif
0 голосов
/ 03 июня 2009

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

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

...