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

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

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

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

Ответы

Ответ 1

Из приведена следующая страница на Delphi Q & A Rob Kennedy: (лицензия CC), хотя она относится к Delphi 2005 это может помочь.

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

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

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

Предотвращение уведомления

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

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

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

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

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

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

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

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

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

Ответ 2

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

(Main menu) Tools >> Options >> Debugger Options >> CodeGear Debuggers >> Language Exceptions >>, и список исключений игнорируется.

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