90 likes | 119 Views
Learn how Python handles errors using try and except blocks, catching exceptions, error conditions, common errors to catch, and best practices for error handling. Improve your code's robustness and reliability by mastering error handling in Python programming.
E N D
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 ValueError: 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 • ZeroDivisionError • ValueError (wrong value used) • TypeError (wrong type used) • IndexError (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)