[Python-ideas] Consistent programming error handling idiom

Steven D'Aprano steve at pearwood.info
Fri Apr 8 15:01:19 EDT 2016


On Sat, Apr 09, 2016 at 04:28:47AM +1000, Chris Angelico wrote:

> ANY uncaught exception is a bug.

What, even SystemExit and KeyboardInterrupt?


> Any caught exception is not a bug.

Even:

try:
    ...
except: 
    # Look, bug free programming!
    pass


I am sure that any attempt to make universal rules about what is or 
isn't a bug will be doomed to failure. Remember that people can write 
code like this:

# Writing a BASIC interpreter in Python.
if not isinstance(command[0], int):
    raise SyntaxError('expected line number')

So, no, SyntaxError does not necessarily mean a bug in your code. *ALL* 
exceptions have to be understood in context, you can't just make a 
sweeping generalisation that exception A is always a bug, exception B is 
always recoverable. It depends on the context.


-- 
Steve


More information about the Python-ideas mailing list