Windows 使用Qt设置未处理异常处理程序的平台无关方式?

Windows 使用Qt设置未处理异常处理程序的平台无关方式?,windows,macos,qt,Windows,Macos,Qt,Mac OS X(Cocoa) NSSetUncaughtExceptionHandler 窗户 SetUnhandledExceptionFilter 使用Qt是否有一种平台无关的方法来实现这一点?main()中的显式处理程序如何? 我的意思是你的申请有以下几行: int main(int argc, char *argv[]) { QApplication a(argc, argv); MainWindow mainWin; mainWin.show(); r

Mac OS X(Cocoa) NSSetUncaughtExceptionHandler

窗户 SetUnhandledExceptionFilter


使用Qt是否有一种平台无关的方法来实现这一点?

main()中的显式处理程序如何? 我的意思是你的申请有以下几行:

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow mainWin;
    mainWin.show();
    return a.exec();
}
简单地用以下材料包装一下怎么样

try{
   QApplication a(argc, argv);
   ...
}
catch //catches any previously unhandled
{
    //do graceful exit
}

围绕这一点写IFDEF真的很糟糕吗?这只是一个实例,一旦完成,你就再也不用看它了。至少在Windows上是这样说的,我建议您不要这样做,而是注册Vista+的重新启动管理器(如果可用)。

至少在Windows上,这不是相同的语义,因为它不会捕捉SEH例外情况。恐怕这是唯一的可移植方式。它还不错。事实上,我已经这样做了。只是想看看我是否错过了一个更干净的方法。