Большинство сообщений об исключениях могут быть подавлены обработкой события TApplication.OnException
. Объект приложения отображает сообщение об исключении только в том случае, если этому событию не назначен обработчик. Вы можете вызывать TApplication.ShowException
в вашем обработчике для определенных исключений, если хотите.
Это событие вызывается для исключений, возникающих при выполнении в цикле сообщений VCL. Исключения, возникающие в другом месте, прерывают либо вашу программу, либо текущий поток. Кроме того, событие вызывается только для исключений, которые происходят от Exception
; исключения, которые происходят от других классов, передаются непосредственно в SysUtils.ShowException
.
Независимо от того, отображаете ли вы сообщение или нет, ваша программа все еще находится в неопределенном состоянии после возникновения исключения, которое вы не обработали. Простое подавление сообщения сродни уборке пыли под ковром. Лучше всего использовать средство регистрации исключений, такое как MadExcept , EurekaLog или JclDebug , которое записывает информацию об исключении и дает вашим клиентам возможность отправки отчетов обратно вам, чтобы вы могли воспроизвести условия ошибки и исправить ее.