Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Делфи _ Обработка исключений

Автор: NetAnton 26.06.2004 18:14

В приложении есть процедура HandleException(Sender: TObject; E: Exception);
В ней выводится MessageBox с информацией: класс ошибки - E.ClassName, само сообщение ошибки - E.Message, класс объекта-генератора ошибки - Sender.ClassName.
В начале загрузки форм имеется присвоение
Application.OnException:=HandleException.
Как я тестировал - в код нажатия какой-то кнопки вписывал raise EMathError.Create('сообщ.') и получал красивый обработчик исключений. Но если, допустим, идет вызов процедуры через ту же кнопку, то при возникновении ошибки в процедуре выдается информация о кнопке, а не процедуре. Проблема в этом.
Хотелось бы еще как-то узнать через Sender не только класс виновника, но и его конкретное имя.

За ответы всем спасибо. Пошел мучать дальше эти эксепшны...

Автор: NetAnton 26.06.2004 18:24

Опять я. Как всегда забыл еще одно. :-)
В случае возникновения ошибки в процедуре таймера, сообщения выдаются через указанный период (боже упаси, если он сильно маленький). Подскажите, как заблокировать работу приложения, когда светится модальное окно с сообщением.

Автор: KRUTOY 26.06.2004 23:01

NetAnton

Цитата
Но если, допустим, идет вызов процедуры через ту же кнопку, то при возникновении ошибки в процедуре выдается информация о кнопке, а не процедуре.

В каком виде она выдаётся и куда :o , поясни?? В принципе, наверно, параметром передачи является класс TComponent, поэтому и не появляется информации о процедуре...

Цитата
Подскажите, как заблокировать работу приложения, когда светится модальное окно с сообщением

Работа прекращается и так smile.gif

Автор: NetAnton 27.06.2004 2:11

первое. информация выдается в сообщении в HandleException, но не о процедуре, где возникло исключение, а о кнопке, нажатие на которой вызвало процедуру.

второе. работа не прекращается. хоть и появляется MessageBox, таймер себе свободно тикает, и если ошибка находится где-то в его коде, исключения выскакивают каждый миг. юзерам это не понравится.


впрочем, и с первым и вторым я разобрался. удовлетворен. Krutoy, спасибо.

Автор: KRUTOY 27.06.2004 14:00

расскажи как??
может код приведёшь, вдруг мне пригодиться?? smile.gif

Автор: NetAnton 27.06.2004 17:13

Бросай мыло. я посмотрю, что там стоит твоего внимания ;)

Автор: KRUTOY 27.06.2004 19:22

fjodorow@list.ru