On 7/31/2012 4:49 PM, Chris Kaynor wrote:
On Tue, Jul 31, 2012 at 1:21 PM, Terry Reedy <tjre...@udel.edu
<mailto:tjre...@udel.edu>> wrote:

    Another example: KeyError and IndexError are both subscript errors,
    but there is no SubscriptError superclass, even though both work
    thru the same mechanism -- __getitem__.  The reason is that there is
    no need for one. In 'x[y]', x is usually intented to be either a
    sequence or mapping, but not possibly both. In the rare cases when
    one wants to catch both errors, one can easily enough. To continue
    the example above, popping an empty list and empty set produce
    IndexError and KeyError respectively:

       try:
         while True:
           process(pop())
       except (KeyError, IndexError):
         pass  # empty collection means we are done

There is a base type for KeyError and IndexError: LookupError.

http://docs.python.org/library/exceptions.html#exception-hierarchy

Oh, so there is. Added in 1.5 strictly as a never-directly-raised base class for the above pair, now also directly raised in codecs.lookup. I have not decided if I want to replace the tuple in the code in my book.

--
Terry Jan Reedy



--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to