It may be worth checking out the Errors and Exceptions docs.
In short, you can specify behaviour for different Exception types using the
except ExceptionType: syntax where
ExceptionType is an
Exception derived from the Python
Exception class – a list of built-in Python exceptions can be found here.
It is important to note that when an
Exception is raised in a
try block, Python will execute the code within the first
Except block that matches the
Exception raised in a top-down manner. For this reason,
except Exception: is usually found at the bottom in a given
except chain as to provide default behaviour for unspecified exceptions that may be raised, it is not first as any
Exception raised will trigger this behaviour and thus would make other
Except statements within the chain moot.
The below example illustrates the above points.
eval() has been used for demonstrative purposes only, please be aware of the inherent dangers of using
eval() before you consider using it in your own code.
def demo(e): try: eval(e) except ZeroDivisionError as e: print("ZeroDivisionError caught") print(e) except IndexError as e: print("IndexError caught") print(e) except Exception as e: print("Other Exception caught") print(e) examples = ["10/0", "[0,1,2]", "int('foo')"] for e in examples: demo(e) print()
ZeroDivisionError caught division by zero IndexError caught list index out of range Other Exception caught invalid literal for int() with base 10: 'foo'
CLICK HERE to find out more related problems solutions.