В WPF (.net) я могу использовать следующий код для обработки непредвиденных исключений и правильного выхода из программы.
private void Application_Startup(object sender, StartupEventArgs e) {
this.DispatcherUnhandledException += App_DispatcherUnhandledException
}
private void App_DispatcherUnhandledException(object sender, DispatcherUnhandledExceptionEventArgs e) {
// handle unhandled exception
}
Есть ли что-то подобное в VCL? Или даже в стандартном C ++?
Посмотрите на TApplication::OnException
событие (также TApplicationEvents
компонент обертки), например:
__fastcall TMainForm::TMainForm(TComponent *Owner)
: TForm(Owner)
{
Application->OnException = &AppException;
}
__fastcall TMainForm::~TMainForm()
{
Application->OnException = NULL;
}
void __fastcall TMainForm::AppException(TObject *Sender, Exception *E)
{
// handle unhandled exception
}