Exceptions in Python Error Handling Error handling What
- Slides: 8
Exceptions in Python Error Handling
Error handling • What happens when a Python rogram is running and an error occurs? • Python IDEs will “catch” the error signal and put out a message on the shell giving some indication of what statement caused the error – “Traceback” … • It is possible to handle your own errors so you don’t get this message
Checking for Error conditions • A lot of error checking is done with if (else) statements – making sure a number is not negative before you take the square root of it – making sure the number is not zero before you divide by it • Some errors are hard to detect this way – trying to open a file
Exceptions • Most modern languages have some way to let the programmer specify what should happen if a particular error occurs while the program runs • The error signal is usually called “an exception” (as in “exception to the rule”) • In C++ they use “try” and “catch” • In Python they use “try” and “except”
Try / Except • The syntax uses two new keywords • example try: sq_x = sqrt(x) except Value. Error: print(“a negative number for sqrt”) sq_x = 0
Semantics • The “try block” is executed – a process in the background is watching for the error signal (exception) • If the try block succeeds (no exception), the except: block is skipped and execution proceeds from the next line after the except block • If the try block raises an exception, the except block for that particular exception is executed and then execution continues • If you don’t have one for that error, the except block is skipped and the usual IDE error handling takes over
Notes • The common errors to catch – Zero. Division. Error – Value. Error (wrong value used) – Type. Error (wrong type used) – Index. Error (for subscripts) – IOError (for files) • Keep the “try block” as small and focused as possible. This makes it easier to handle the one or two errors which could happen.
Notes • You can have several except blocks for one try block, each one catching a different error. • If a try block raises more than one exception, the first except block that matches is the ONE that is done (it does not keep looking through the list for more)