'sys.excepthook' 和多处理

Cyb*_*cob 5 python multithreading sys

我正在尝试使用带有多处理库的自定义 sys.excepthook 来处理所有线程上的异常。我知道python有一个突出的错误,它阻止了它与 Threading 库一起正常工作,并且测试表明这也会影响多处理。

导致我找到它的 Python 错误和Stackoverflow 帖子都有针对 Threading 库的解决方法,但没有针对多处理的解决方法。我试图调整解决方法以用于多处理,但仍像往常一样抛出异常。

def install_thread_excepthook():
    import sys
    start_old = multiprocessing.Process.start
    def start(*args, **kwargs):
        try:
            start_old(*args, **kwargs)
        except (KeyboardInterrupt, SystemExit):
            raise
        except:
            sys.excepthook(*sys.exc_info())
    multiprocessing.Process.start = run
Run Code Online (Sandbox Code Playgroud)

如何使 sys.excepthook 与多处理正常工作?