On 12/16/2010 7:33 PM, Steven D'Aprano wrote:
Python's exception system has to handle two different situations: buggy code, and bad data. It's not even clear whether there is a general distinction to be made between the two, but even if there's not a general distinction, there's certainly a distinction which we can *sometimes* make.
The two are intertwined. Production code that passes bad data to a function without catching the exception is buggy.
def func(x): if !(x<= 10): if x%2 != 0: pass else: raise ValueError('bad value for x') return I would have got the same traceback,
A traceback is printed only if the code passes bad data and does not catch the exception. Tracebacks are for developers, not for users.
-- Terry Jan Reedy -- http://mail.python.org/mailman/listinfo/python-list