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

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

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

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

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

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


впрочем, и с первым и вторым я разобрался. удовлетворен. Krutoy, спасибо.
KRUTOY
расскажи как??
может код приведёшь, вдруг мне пригодиться?? smile.gif
NetAnton
Бросай мыло. я посмотрю, что там стоит твоего внимания ;)
KRUTOY
fjodorow@list.ru
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.