[docs] Possible Documentation bug: Chapter 8. Errors and Exceptions

Rahul Babtiwale rahulvinay51 at gmail.com
Mon Mar 11 23:40:55 EDT 2019


Hello Julien,

Thank you for the clarification. I appreciate your help.

Best Regards,
Rahul


On Tue, 12 Mar 2019, 03:47 Julien Palard, <julien at palard.fr> wrote:

> Hi Rahul, thanks for asking,
>
>
> > I was going through the chapter as per the below link :
> > https://docs.python.org/3/tutorial/errors.html#handling-exceptions
> > [...]
> > I think this elaboration needs to be done.
> >
> > I would request you to provide your insights on this.
>
> A simple way to think of it is to remember the exception hiearchy:
> https://docs.python.org/3/library/exceptions.html?highlight=baseexception#exception-hierarchy
>
> For example, here, ArithmeticError inherits Exception, it's more specific,
> and ZeroDivisionError inherits from ArithmeticError, is really specific. So
> we have something like:
>
> class ArithmeticError(Exception):
>     pass
>
> class ZeroDivisionError(ArithmeticError):
>     pass
>
> expecting Exception will catch Exception, ArithmeticError and
> ZeroDivisionError
> expecting ArithmeticError will catch ArithmeticError and ZeroDivisionError
> expecting ZeroDivisionError will only catch ZeroDivisionError.
>
> Back to the example with B, C, D: D is the most specific, and B the most
> generic exception, so writing:
>
>     except D:
>         print("D")
>     except C:
>         print("C")
>     except B:
>         print("B")
>
> tries the most specific first, which have a chance to catch D.
>
> writing it the other way around, we're getting "except B" first, the
> generic one, which will catch B, C, and D, thus printing B three times.
>
> Hope it helps,
>
> Bests,
> --
> Julien Palard
> https://mdk.fr
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/docs/attachments/20190312/0a215008/attachment.html>


More information about the docs mailing list