Получение первого шанса исключить мое приложение - PullRequest
1 голос
/ 15 января 2011

Когда в моем приложении возникает исключение, я ожидаю, что отладчик прекратит работу и войдет в режим отладки, но это не так. Вместо этого я просто получаю сообщение в «Немедленном окне» («Исключение из первого шанса ...»), и программа продолжает работать, как будто ничего не произошло. Однако подпрограмма (в которой было сгенерировано исключение) закрыта, поэтому операторы после исключения не выполняются. Так как эта подпрограмма выполняет инициализацию моей программы, работа становится очень нестабильной.

Как я могу сказать отладчику остановить выполнение при возникновении исключения?

(я использую VB 2010 и не менял настройки отладчика.)

UPDATE:
Спасибо за быстрый ответ. К сожалению, я до сих пор не могу понять, как мне хотелось бы.

  1. На странице «Дополнительные параметры компиляции» у меня нет «Target CPU». Может дело в том, что у меня только VB Express?
  2. Если установить флажок «Брошено» в «Отладка> Исключения», выполнение останавливается, даже если у меня есть перехват для этого исключения, и я этого не хочу.

До сих пор я использовал VB 2008 на 32-битной системе, и все работало нормально, но с тех пор, как я перешел на 64-битную версию 2010, я просто не могу понять, как это правильно. Есть предложения?

Ответы [ 3 ]

1 голос
/ 01 апреля 2012

Я знаю, что это старая тема, но я надеюсь, что она может помочь другим ..

Я столкнулся с очень похожей проблемой при запуске моих форм. Я поместил свой код в «показанное событие» вместо «событие загрузки», и он РЕШЕН! Я имею в виду, что я получаю исключения, как ожидалось, и мои коды не выходят молча.

Я знаю, что это разные события, но для меня это ничего не изменило.

Кстати, мой env: VB.net Express 2010 на Win7 64 бит

1 голос
/ 15 января 2011

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

Обычная причина - это оператор catch в вашем коде, возможно, оператор VB.NET On Error.Или ошибка во взаимодействии 64-битного отладчика с Windows Forms.После того, как он сломается, используйте Debug + Windows + Call stack и проверьте, находится ли обработчик события Load формы в стеке вызовов.Ошибка приводит к проглатыванию необработанных исключений без диагностики.

Чтобы обойти это, используйте Project + Properties, вкладку Compile, прокрутите вниз, Advanced Compile OptionsИзмените настройку целевого процессора на «x86».Это настройка по умолчанию для проектов VS2010, кстати.Теперь вы будете использовать 32-битный отладчик, у него нет этой проблемы.И вы можете использовать Edit + Continue.

0 голосов
/ 30 января 2011

Чтобы получить опцию Target CPU, необходимо выбрать экспертные настройки в VS2010 express.Перейдите в Tool | Options и проверьте настройки эксперта.

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