Qt4 如何记录QApplication的未捕获异常?
我应该在哪里使用except块来记录Qt4 如何记录QApplication的未捕获异常?,qt4,pyqt4,Qt4,Pyqt4,我应该在哪里使用except块来记录QApplication的异常 这似乎不起作用: app = QtGui.QApplication(sys.argv) MainWindow = MainWindow() MainWindow.show() try: eventLoop = app.exec_() except Exception, e: log.exception(str(e)) 因为异常甚至不会到达该块。在Qt中不支持从事件处理程序引发异常。您必须重新实现QApplica
QApplication
的异常
这似乎不起作用:
app = QtGui.QApplication(sys.argv)
MainWindow = MainWindow()
MainWindow.show()
try:
eventLoop = app.exec_()
except Exception, e:
log.exception(str(e))
因为异常甚至不会到达该块。在Qt中不支持从事件处理程序引发异常。您必须重新实现QApplication::notify(),并捕获所有异常 覆盖函数boolqapplication::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();
}
}
虚拟布尔通知(QObject*接收器,QEvent*事件)
{
尝试
{
返回QApplication::notify(接收者、事件);
}
捕获(标准::异常&e)
{
qDebug()我通过重写<代码>例外的< />代码,如下面的答案:不适用于qApple。通知C++ C++异常,我需要捕获Python异常。我怎么办?我是说,我应该把这个代码翻译成Python还是制作一个C++文件并让Python导入它?我丢失了,因为这个代码是C++和我们。我们正在谈论python。