Most of what you've just learned also applies to Python's otherexception-handlng construct, the "try-finally" statement. The "try-finally"statement block differs from "try-except-else" in that it merely detectserrors; it does not provide for a mechanism to resolve them. It istypically used to ensure that certain statements are always executed whenan error (regardless of type) is encountered. The "try-finally" statement block looks like this: If an exception is encountered when running the code within the "try"block, Python will stop execution at that point; jump to the "finally"block; execute the statements within it; and then pass the exceptionupwards, to the parent "try" block, if one exists, or to the defaulthandler, which terminates the program and displays a stack trace. Here's an example: When this program runs, an IndexError exception will be generated and the"finally" block will execute, printing an error message. Control will thenflow to the parent exception handler, which is the Python interpreter inthis case; the interpreter will terminate the program and print a stacktrace. Since "try-finally" blocks simply detect errors, passing the resolutionbuck upwards to the parent "try" block, it's possible to nest them within"try-except-else" blocks. Take a look: Here's what'll happen when you run it:
blog comments powered by Disqus |