Dealing with an exception is referred to as catching an exception. Checking for exceptions is done with the commands try and except.
An exception stops the program execution flow and looks for the closest try enclosing block. If the exception is not caught, the program unit is left and it continues searching for the next enclosing try block in a program unit higher up in the calling stack. If no block is found and the exception is not handled, execution stops entirely and the standard traceback information is displayed.
Let's look at the factorial example from previously and use it with the try statement:
n=-3
try: print(factorial(n)) except ValueError: print(factorial(-n)) # Here we catch the error
In this case, if the code inside the try block raises an error of type ValueError, the exception will be caught and the action in the except block is taken. If no exception occurs inside...