import threading import sys class ThreadRunFail(threading.Thread): name = "ThreadRunFail" def run(self): #sys.exit(1) raise ValueError("run failed") def hook(args): if args.exc_type == SystemExit: return sys.excepthook(args.exc_type, args.exc_value, args.exc_traceback) threading.excepthook = hook thread = ThreadRunFail() thread.start() thread.join() print("done")