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

Можете ли вы установить VS2008 на разрыв ошибки внутри оператора try-catch

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

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

4b9b3361

Ответ 1

Да, перейдите в меню "Отладка", выберите "Исключения...", установите флажок "Брошенный" для "Исключения на время обычного языка"

Ответ 2

Конечно, нажмите Ctrl-Alt-E, чтобы открыть окно с исключениями, и отметьте флажок Thrown для исключений среды обычного языка

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

Ответ 3

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

Ответ 4

В Visual Studio вы можете перейти к Debug → Exceptions... и установить флажок в любое конкретное исключение или класс исключений, которые вы хотите разбить VS при сгенерированном.

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