In Python, you should use exceptions to catch error conditions such as files that you're unable to open, broken network connections, and user inputs which give a problem - it's all very well putting traditional checks in your code, but you'll be well advised to use
try and
catch as well for additional security.
You can also use exceptions as a safety net to set the fallback value for a variable if it hasn't otherwise been defined, as in this example:
# Lots of code that SHOULD set "status" variable ...
try:
print status
except NameError:
status = "OK"
print status
print "Code carries on, status is ",status
With multiple
except clauses, Python can handle different errors in different ways - if you're going to use this facility, list the most specific exceptions first, as Python will use whichever one matches first.
Note that in Python, you can also
raise your own exceptions too -
and you are strongly advised to do so when you want to return an 'error' from a function rather than a value. For example, you should raise an exception in a function that returns the number of children someone has, but the function cannot determine a result - it should NOT return a cardinal or special value such as 99 or -1 as that would make the calling code and handling of the results more complex (and, one day, someone MIGHT be a sperm donor and have fathered 99 children!)
(written 2009-07-12)
Associated topics are indexed under
Y109 - Python - Exceptions [3441] Pressing ^C in a Python program. Also Progress Bar. - (2011-09-15)
[3433] Exceptions - a fail-safe way of trapping things that may go wrong - (2011-09-11)
[3177] Insurance against any errors - Volcanoes and Python - (2011-02-19)
[2998] Using an exception to initialise a static variable in a Python function / method - (2010-10-13)
[2994] Python - some common questions answered in code examples - (2010-10-10)
[2622] Handling unusual and error conditions - exceptions - (2010-02-03)
[2408] Robust user input (exception handling) example in Python - (2009-09-17)
[2368] Python - fresh examples of all the fundamentals - (2009-08-20)
[2018] UnboundLocalError - Python Message - (2009-01-31)
[1236] Trying things in Python - (2007-06-18)
[1042] Nested exceptions in Python - (2007-01-18)
[381] Exceptions in Python - (2005-07-17)
Some other Articles
Great new diagrams for our notes ... Python releasesStrings as collections in PythonEveryone is in the customer relations businessChecking robots.txt from PythonPython - using exceptions to set a fallbackCreating and iterating through Python listsUnderstanding the new local government structure in WiltshireFirst courses for 2010Python classes / courses - what version do we train on?Who is Marc Schneider of Multilingual Search Engine Optimization Inc