如果在 main 中定义了这个全局变量,为什么没有找到它?

我制作了这个简单的脚本来尝试一些东西。基本上,它应该捕获在应用程序运行期间发生的任何异常并断开与服务器的连接。


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 中定义的,为什么错误处理程序找不到它?


阿波罗的战车
浏览 205回答 2
2回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python