1
マルチプロセッサでカスタムsys.excepthook
を設定しようとしています。 でも動作しません。Python sys.excepthook onマルチプロセス
以下のコードでは、エラーメッセージの接頭辞としてThis is my traceback function:
文字列を出力することを期待していますが、そうではありません。
コード:
from multiprocessing import Process
import time
import traceback
import logging
import sys
def excepthook(etype, evalue, traceback):
traceback_strs = traceback.format_exception_only(etype, evalue)
exception_str = "This is my traceback function:" + "\r\n".join(traceback_strs)
print("ExceptHook")
print(exception_str)
def subprocess_main():
sys.excepthook = excepthook
time.sleep(3)
raise Exception("HelloWorld")
if __name__ == "__main__":
p = Process(target=subprocess_main)
p.start()
p.join()
それが動作しないのはなぜ?あなたのフックの前に例外を消費キャッチされない例外がある場合3.6.3