gpt4 book ai didi

qt4 - 如何记录 QApplication 的未捕获异常?

转载 作者:行者123 更新时间:2023-12-04 13:54:57 24 4
gpt4 key购买 nike

我应该在哪里使用 except 块来记录 QApplication 的异常?

这似乎不起作用:

app = QtGui.QApplication(sys.argv)
MainWindow = MainWindow()
MainWindow.show()
try:
eventLoop = app.exec_()
except Exception, e:
log.exception(str(e))

因为异常甚至不会到达那个块。

最佳答案

Qt 不支持从事件处理程序中抛出异常。您必须重新实现 QApplication::notify() 并在那里捕获所有异常。

覆盖函数 bool QApplication::notify(QObject *receiver, QEvent *event) 以便它捕获所有抛出的异常。

你可以这样实现。

virtual bool notify(QObject * receiver, QEvent * event) 
{
try
{
return QApplication::notify(receiver, event);
}
catch(std::exception& e)
{
qDebug() << "Exception thrown:" << e.what();
}
}

关于qt4 - 如何记录 QApplication 的未捕获异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10665655/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com