Delphi - Как повторно включить уведомление об исключении отладчика? - PullRequest
14 голосов
/ 03 мая 2009

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

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

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

Ответы [ 2 ]

17 голосов
/ 03 мая 2009

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

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

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

8 голосов
/ 03 мая 2009

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

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

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

enter image description here

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

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

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

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

enter image description here

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

enter image description here

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

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

enter image description here

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