Как заставить скрипт python продолжать работать после sys.excepthook? - PullRequest
0 голосов
/ 09 ноября 2019

Я хочу сделать собственный обработчик ошибок, после чего скрипт продолжит работать. Я пытался использовать sys.excepthook = CatchHook, и я получил что-то вроде этого:

def CatchHook(e,v,t):
    print("{} / {} / {}".format(str(e.__name__, str(v), str(traceback.extract_tb(t)))
    print("Traceback was handled, but script will continue working!")
sys.excepthook = CatchHook

Но когда я запускаю его, он выходит. Как я могу заставить его работать без выхода?

1 Ответ

0 голосов
/ 09 ноября 2019

Как я понимаю, вы хотите что-то вроде этого:

def your_script():
    while True:
        try:
            your_code()
        except Exception as ex:
            template = "An exception of type {0} occurred. Arguments:\n{1!r}"
            message = template.format(type(ex).__name__, ex.args)
            print(message)

Если вы хотите выйти из "while", используйте break или return

...