Можете ли вы установить VS2008 для прерывания при ошибке внутри оператора try-catch - PullRequest
12 голосов
/ 19 февраля 2009

Одна вещь, которая мне очень понравилась в VB6, это то, что у вас была возможность сообщать среде разработки о всех ошибках независимо от того, какую обработку ошибок вы настроили. Можно ли сделать то же самое в VS2008, чтобы отладчик остановился при любой ошибке, даже если это происходит внутри оператора try-catch?

Проблема особенно сложна, когда вы обрабатываете файл, скажем, 500 записей, и он не работает с одной из них - кто знает, какая - Вы не хотите изменять код так, чтобы ваш счетчик for инициализировался вне для цикла - это небрежно в долгосрочной перспективе. Вы просто хотите, чтобы отладчик знал, что он остановился из-за каких-то настроек, которые вы где-то установили.

Ответы [ 4 ]

22 голосов
/ 19 февраля 2009

Да, перейдите в меню «Отладка», выберите «Исключения ...», проверьте «Брошено» для «Общих исключений времени выполнения»

7 голосов
/ 19 февраля 2009

Конечно, нажмите Ctrl-Alt-E, чтобы открыть окно исключений, и установите флажок Брошенный в Общих исключениях времени выполнения языка

Это остановит выполнение, откроет исходный код, в котором было сгенерировано исключение, и сообщит вам с окном сообщения, что это за ошибка, указывая на строку, в которой оно было выдано.

4 голосов
/ 27 февраля 2009

Я обнаружил, что флажок, о котором все говорят, один раз во время отладки проекта на работе. Я включил это, и внезапно я получаю все эти исключения, брошенные повсеместно! Оказалось, что разработчики в другой команде использовали Try-Catch в качестве маски для легко предотвратимых условий (но были слишком ленивы, чтобы поймать себя в ловушку). BAD!

3 голосов
/ 19 февраля 2009

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

Существует пять категорий исключений - C ++, Common Language Runtime, Помощники по управляемой отладке, Собственные проверки во время выполнения и Win32. По большей части вас интересуют CLR, хотя, если вы делаете COM-взаимодействие, вам могут понадобиться и другие.

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