Форум: "Основная";
Текущий архив: 2003.05.22;
Скачать: [xml.tar.bz2];
ВнизКак отлавливать все Exceptionы программы? Найти похожие ветки
← →
Zelius (2003-05-07 17:17) [0]Всем привет! Мне дали готовый проект, после того как я его посмотрел, волосы встали дыбом! То как там обращаются с исключениями - заслуживает обращения в Гаагский трибунал! В итоге, зачастую бывает, что программа глючит потому, что какое-то исключение осталось в недрах кода и не показывается пользователю. Проект не маленький, поэтому все места в нем поймать архи трудно! Есть ли способ, отлавливать создание исключений или перехватывать их на другом этапе? Что бы ни одно, даже отработанное try/except исключение не проскользнуло мимо меня :) Спасибо!
← →
jel (2003-05-07 17:28) [1]Ловить необработанные исключения можно в Application.OnException, а вот обработанные в try .. except - наверно уже никак.
← →
pusrg (2003-05-07 17:32) [2]А если поставить галочку в Debugger Options - Stop on Delphi Exceptions?
Правда при этом будут вылазить исключения не только внутри кода проекта :).
← →
Zelius (2003-05-07 17:54) [3]
> jel © (07.05.03 17:28)
Интересует именно отлов обработанных исключений! С необработанными то все понятно...
> pusrg © (07.05.03 17:32)
надо исключения отлавливать не только из Дельфи...
← →
VAleksey (2003-05-07 18:05) [4]Search \ Find in Files \ All files in project
ищем слово "try"
Убираем его везде.
:-))
← →
kull (2003-05-07 18:08) [5]
> VAleksey © (07.05.03 18:05)
только try - finally случайно не убери...
← →
Zelius (2003-05-07 18:29) [6]
> VAleksey © (07.05.03 18:05)
Нет, спасибо, это будет бомба замедленного действия :)
← →
VAleksey (2003-05-07 18:34) [7]Ну странные вы ребята. :-))
В чем бомба - то? Ты же можешь сам прогнать проект. Не надо его в таком виде юзеру отдавать.
← →
Zelius (2003-05-07 18:41) [8]
> VAleksey © (07.05.03 18:34)
Бомба в том, что есть места расчитанные на эксепшоны, если и там убрать, то эти места перестанут работать. Я хотел что-то типа хука поставить, что бы не менять основной код. Пока вот нашел RaiseExceptionProc...
← →
Cobalt (2003-05-08 00:28) [9]Может, подпатчить слегка в Classes.pas базовый класс исключений, чтоб он лог вел?
Хотя, думаю, тебе ведь интересует место в коде?
Тогда Find\FindNext.
← →
Zelius (2003-05-08 10:30) [10]
> Cobalt © (08.05.03 00:28)
Не хочется менять стандартный модуль...
RaiseExceptionProc пока работает. Правда не знаю, все ли исключения через него проходят...
← →
Digitman (2003-05-08 12:21) [11]>Zelius
Ты ни слова не сказал о мультипоточности, возможно реализуемой в приложении.
Application.OnException() дает перехват необраб.исключений только в осн.код.потоке процесса приложения. Исключения же, потенциально возникающие в иных кодовых потоках, будучи необработанными "на месте" (try..except), ведут к худшем случае к краху процесса (в лучшем - дальнейшее поведение процесса непредвидимо). И никакой Application.OnException() не поможет.
← →
Erik Ivanov (2003-05-08 14:32) [12]Возми JCLDebug он у меня все обработаные и необработаные exception отлавливает и отправляет почтой.
← →
Zelius (2003-05-12 12:49) [13]
> Digitman © (08.05.03 12:21)
Это я понимаю, и знаю, что TApplication потоко-небезопасный, поэтому ищу другие пути перехвата исключений.
> Erik Ivanov (08.05.03 14:32)
Я правильно понял, что даже если исключение было обработано try/except, то JCLDebug его все равно отлавливает?
← →
Zelius (2003-05-12 13:54) [14]
> Erik Ivanov (08.05.03 14:32)
Не подскажешь где можно взять хелп толковый по JclDebug? Лазяю по тому что у меня есть и не вижу пояснений к статьям :( Не пойму, как сделать перехват всех исключений, а не только не обработанных...
← →
Digitman (2003-05-12 14:20) [15]
> Zelius
> Это я понимаю, и знаю, что TApplication потоко-небезоп
При чем здесь "потоконебезопасность" VCL ? Речь идет о TLS (thread local storage), индивидуальном для каждого кодового потока процесса. В TLS каждого конкретного кодового потока как раз и хранится (кроме всего прочего) инф-ция об исключении в этом потоке. TApplication же при глобальной обработке исключения по OnException() обращается к своему TLS. Но этот TLS имеет отношение только к осн.код.потоку процесса !
← →
Zelius (2003-05-12 16:14) [16]
> Digitman © (12.05.03 14:20)
Не пойму, чем это мне поможет, как ты предлагаешь отлавливать исключения?
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.05.22;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.007 c