Вниз
Скачать: CL | DM;

Глобальный отлов exception   Найти похожие ветки 

← →
servs ©   (2003-08-22 18:59) [0]

Можно как то устроить глобальный отлов exception?
Т.е я хочу что бы если где то вылетает exception, и я его не отловил в том месте, то программа показала культурное окошко (типа "а не послать бы нам письмо в саппорт?") и завершилась.

Можно как то такой организовать?

ЗЫ. Программма очень активно юзает СОМ, и приходить во ВСЕ функции вставлять try ... except ...


← →
Reindeer Moss Eater ©   (2003-08-22 19:00) [1]

Application.OnException


← →
y-soft ©   (2003-08-22 22:15) [2]

>Reindeer Moss Eater © (22.08.03 19:00) [1]

В общем случае это будет работать только для первичного потока.
Для прочих потоков надо заключать их функцию (ту, что в методе Execute) в блок try...except и явно перенаправлять, используя, например, Application.ShowException (чтобы просто показать), или Application.HandleException (чтобы отловилось в Application.OnException)...

Иначе при возникновении исключения поток просто завершится без каких-либо сообщений...


← →
Романов Р.В. ©   (2003-08-22 22:25) [3]


> y-soft © (22.08.03 22:15) [2]

Думаю что человек не знакомый с Application.OnException наврядли пользуется так активно пользуется потоками что в них выполняется невообразимое количество функций в которые устанешь вставлять try ... except


← →
y-soft ©   (2003-08-23 08:17) [4]

>Романов Р.В. © (22.08.03 22:25) [3]

Ваша ирония понятна:)

Но:

1. COM-технология сама активно использует потоки
2. Складывается впечатление, что очень многие весьма приблизительно понимают, что такое исключения и как с ними работает Delphi. Особенно это касается обработки исключений в Dll, сервисах, в многопоточных и консольных приложениях
3. Читают ответы не только те, кто задает вопросы...


← →
servs ©   (2003-08-27 12:47) [5]

>Романов Р.В. ©

Я учился не по систематически, а только то что было нужно в каждый конкретный момент времени. Тогда это меня устраивало, а сейчас вот приходиться латать дыры в своих познаниях.

>y-soft ©
Спасибо.
По п.2, Вы не знаете где можно почитать в инете об этом подробней?


← →
y-soft ©   (2003-08-27 13:44) [6]

>servs © (27.08.03 12:47) [5]

В хелпе сказано много, только читать надо внимательно:)

А еще лучше - посмотреть исходники VCL, чтобы понять внутренние механизмы...

Если хотите узнать, как обрабатывает исключения Windows, то хорошо описано у Рихтера...



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.015 c
14-24662
Карелин Артем
2003-08-20 15:56
2003.09.08
Почему сервис не может работать с модулем Filectrl?


3-24344
Alex9
2003-08-18 07:57
2003.09.08
Запись данных на диск


6-24597
RedFox
2003-07-02 12:12
2003.09.08
Поддержка сети в Delphi 7


7-24731
Mishel
2003-06-25 14:49
2003.09.08
Как избавиться от потерь при чтении I/O портов?


8-24563
bkv
2003-05-08 17:01
2003.09.08
Проблема в заливке!




   Наверх