Delphi – Как повторно включить уведомление об исключении отладчика?

StackOverflow https://stackoverflow.com/questions/817658

Вопрос

Я открыл проект (созданный в D2007/08) в D2009, и он компилировался, но при выполнении выдавал массу исключений.Странная вещь, но я знаю, что в проекте беспорядок, поэтому я хочу пойти дальше и исправить это.Ну, на самом деле не все это исправить, достаточно просто заставить это работать.

Когда я запустил его, я получил уведомление об исключении отладчика (небольшой диалог с кнопками «Прервать», «Продолжить», «Справка»), и мне захотелось продолжить и посмотреть, сработает ли, возможно, пропущенное исключение.Я установил небольшой флажок «Игнорировать этот тип исключения» в левом нижнем углу и нажал «Продолжить».Теперь я больше не получаю уведомление об исключении, но приложение по-прежнему не запускается.Я просто получаю пару расплывчатых окон с ошибками и понятия не имею, что происходит.

Я хотел бы снова включить тип исключения, который я ранее выбрал для игнорирования.Но нигде не могу найти эту опцию.Где мне это искать?Кто-нибудь может помочь?

Это было полезно?

Решение

Следующее извлечено из эта страница вопросов и ответов Delphi Роба Кеннеди:(лицензия CC), хотя это относится к Delphi 2005, это может помочь.

Почему я продолжаю получать сообщения об ошибках даже после того, как написал обработчик исключений?

При настройках по умолчанию Delphi IDE уведомляет вас всякий раз, когда в вашей программе возникает исключение, как показано на рисунке 1.Важно понимать, что на данный момент ни один код обработки исключений вашей программы еще не запущен.Это все сам Delphi;его особый статус отладчика позволяет ему получать первое уведомление о любом исключении в вашей программе, даже до того, как ваша программа узнает об этом.

enter image description here

Как избежать уведомления

Если вы не хотите получать уведомления о возникновении исключения, у вас есть несколько вариантов.

  • Вы можете использовать «расширенные точки останова» Delphi, чтобы отключить обработку исключений в определенной области кода.Для начала установите точку останова в строке кода, где вы хотите, чтобы IDE игнорировала исключения.Щелкните правой кнопкой мыши точку точки останова в желобе и откройте диалоговое окно свойств точки останова.В расширенном разделе есть несколько флажков.(См. рис. 2.) Снимите флажок «Разрыв», чтобы отладчик не прерывал вашу программу на этой строке, и установите флажок «Игнорировать последующие исключения».

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

enter image description here

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

enter image description here

  • В опции, связанной с предыдущей, вы можете указать отладчику не прерывать работу ни при каких исключениях.Для этого снимите флажок «Уведомлять об исключениях языка».

  • Наконец, вы можете вообще отключить встроенную отладку.Delphi не будет уведомлять вас об исключениях, а также не будет останавливаться на точках останова и не позволит использовать кнопку «Пауза».Отключите встроенную отладку в параметрах отладчика, как показано на рисунке 5 для Delphi 2005.

enter image description here

Другие советы

Я нашел игнорируемые типы исключений в

(Главное меню) Инструменты > > Параметры > > Параметры отладчика > > Отладчики CodeGear > > Исключения языка > > и список игнорируемых типов исключений.

Это несколько более скрыто, чем в D2005, но очень близко к тому, что было сказано в статье, на которую ссылается Стюарт Данкелд.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top