Home > Mobile >  Do something specific if python scripts exits because of error
Do something specific if python scripts exits because of error

Time:11-10

My script sometimes errors which is fine, but I have to manually restart the script.

Anyone knows how to make it so that it actually works infinitely even if it crashed 50 times, currently what I have only works for 1 crash.

try:
    while True:
        do_main_logic()


except:
    continue

I have tried many scripts, but I am expecting it to just continue no matter what.

CodePudding user response:

Wrap only do_main_logic() in a try-except block, not the full loop.

while True:
    try:
        do_main_logic()
    except:
        pass

Caveat: Catching bare exceptions is frowned upon for good reason. It would be better if you could specify the type(s) of exceptions you expect. To cite the Programming Recommendations in the Style Guide for Python Code:

When catching exceptions, mention specific exceptions whenever possible instead of using a bare except: clause.

A bare except: clause will catch SystemExit and KeyboardInterrupt exceptions, making it harder to interrupt a program with Control-C, and can disguise other problems. If you want to catch all exceptions that signal program errors, use except Exception: (bare except is equivalent to except BaseException:).

CodePudding user response:

You want to do it forever ? Just add a while :)

while True:
    try:
        while True:
            do_main_logic()


    except:
        continue
  • Related