Main Content

Python - using exceptions to set a fallback

Archive - Originally posted on "The Horse's Mouth" - 2009-07-12 11:44:06 - Graham Ellis

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!)