Как заставить visual studio прерываться только при необработанных исключениях?

#visual-studio #debugging #ide

Вопрос:

На других моих машинах Visual Studio всегда выходила из строя при ошибках, когда не было попытки/улова для их обработки, но если была попытка/уловка, то она не ломалась.

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

Как мне заставить его работать так, как я привык?

Ответ №1:

Убедитесь, что у вас есть Just My Code Enabled , перейдя в Инструменты—>Параметры—>>Отладчик—>>>Общие—>>>> Включите только мой код. Это изменит диалоговое окно Отладка—> Исключения, чтобы в нем был установлен флажок для необработанных пользователем ошибок.

введите описание изображения здесь

Комментарии:

1. @BrandonMoore нет проблем, они вроде как старались это скрыть.

2. И вводит в заблуждение… Я предполагаю, что, скорее всего, я увидел это в какой-то момент и подумал: «Что? Нет, я хочу «ограничить» это только моим кодом».

3. Debug > Options это лучший вариант, так как поиск по отладке в Tools > Options показывает правильное окно, но только с записями, содержащими слово «отладка», если вы не очистите поиск.

4. Ответ устарел. 🙁

Ответ №2:

Я не могу найти диалог в принятом ответе.

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

Ответ №3:

Для получения более обновленного ответа:

Когда вы перейдете в настройки исключений, щелкните правой кнопкой мыши на нужном типе исключений, которые для C#, вероятно, будут исключениями во время выполнения на обычном языке, и включите параметр «Продолжить, когда с ним не обращаются в пользовательском коде».

Для меня это, казалось, не нарушалось при исключениях, которые обрабатывались в try catch или иным образом, но оно нарушалось, когда возникало необработанное исключение. Название опции делает ее немного сомнительной, но, похоже, она работает именно так, как мы с вами надеялись сейчас.

Настройки исключений
Включите необходимую настройку

Комментарии:

1. Не забудьте включить только Мой код.