pyqt利用sys.excepthook来对全局异常进行捕获,并输出显示
import os
import traceback
class Mainworkwindow(QMainWindow, Ui_MainWindow):
def __init__(self):
super().__init__()
self.setupUi(self)
self.old_hook = sys.excepthook
sys.excepthook = self.catch_exceptions
def catch_exceptions(self, ty, value, traceback):
"""
捕获异常,并弹窗显示
:param ty: 异常的类型
:param value: 异常的对象
:param traceback: 异常的traceback
"""
traceback_format = traceback.format_exception(ty, value, traceback)
traceback_string = "".join(traceback_format)
QtWidgets.QMessageBox.critical(None, "An exception was raised", "{}".format(traceback_string))
self.old_hook(ty, value, traceback)
弹窗效果如下:
版权声明:本文为venture5原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。