Visual Studio заканчивает приложение на Exception - PullRequest
3 голосов
/ 29 сентября 2010

У меня есть несколько мест в приложении C #, где потенциальные исключения не отслеживаются, но есть блок try-finally для освобождения ресурсов перед сбоем в случае исключения.

Когда я запускаю код в Visual Studio, и возникает исключение, оно разрывается на соответствующей строке, помечает его желтым и описывает исключение.

Отлично.

Но после того, как я заметил и прочитал исключение, я хочу, чтобы мое приложение сохранялось неудачно (выполняются блоки finally). Это именно то, что случилось бы, если бы я запустил код за пределами Visual Studio. Однако, когда я нажимаю F5, чтобы продолжить, он застревает на этой самой линии, отмечая ее снова и снова.

Что я могу сделать, чтобы сообщить Visual Studio, что я хочу, чтобы приложение продолжало работу = отказало?

Ответы [ 3 ]

5 голосов
/ 29 сентября 2010

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

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

  • Инструменты -> Параметры
  • Отладка -> Генерация
  • Снимите флажок «Включить помощник по исключениям»
1 голос
/ 30 сентября 2010

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

0 голосов
/ 29 сентября 2010

Visual Studio продолжит работу после разбивки исключений, если у вас есть соответствующий оператор catch для типа создаваемого исключения.

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

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