我制作了这个简单的脚本来尝试一些东西。基本上,它应该捕获在应用程序运行期间发生的任何异常并断开与服务器的连接。
import sys
import traceback
from PyQt5.QtWidgets import *
class Window(QWidget):
def __init__(self):
QWidget.__init__(self)
layout = QVBoxLayout()
self.setLayout(layout)
# Generate exception
raise Exception('Oh no!')
def foo(self):
print('Bar')
def error_handler(etype, value, tb):
global ex
error_msg = ''.join(traceback.format_exception(etype, value, tb))
print(error_msg)
ex.foo()
sys.exit(1)
if __name__ == '__main__':
sys.excepthook = error_handler
app = QApplication([])
ex = Window()
ex.show()
app.exec_()
如果变量是在 main 中定义的,为什么错误处理程序找不到它?
相关分类