pyqt5 捕捉全局异常并弹窗显示

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版权协议,转载请附上原文出处链接和本声明。