>> 246 ValueError >> 227 aetools.Error >> 216 Error >> 124 TypeError >> 101 error >> 75 RuntimeError >> 53 IOError >> 36 NotImplementedError >> 36 ImportError >> 36 EOFError >> 31 SyntaxError >> 23 KeyError >> 23 AttributeError >> 22 DistutilsPlatformError >> 21 UnicodeError
Roy> It's kind of interesting (scarry?) that in roughly 20% of the cases Roy> nothing more specific than Error is raised. Not really. You might have code in a module named mod like this: class Error(Exception): pass then later: def foo(...): ... blah blah blah ... if condition: raise Error, "hey dummy!" The caller might look like: import mod ... try: mod.foo() except mod.Error, msg: print msg That said, the tendency for many newer modules seems to be to discriminate exceptions based on type (look at urllib2 for example) while older modules tended to have just a single exception they raised (look at ftplib). I suspect that has something to do with whether the module was originally written before or after Python introduced class exceptions. Skip -- http://mail.python.org/mailman/listinfo/python-list