Finally block is used for cleaning up of resources such as closing connections, sockets etc. if try block executes with no exceptions then finally is called after try block without executing catch block. If there is exception thrown in try block finally block executes immediately after catch block. If an exception is thrown,finally block will be executed even if the no catch block handles the exception.
Here is what the above code is Doing:
1. The try block will generate an exception, because x is not defined:
2. The except block will handle the exception.
3. The finally block will be executed regardless if the try block raises an error or not.