[docs] Possible Documentation bug: Chapter 8. Errors and Exceptions
Rahul Babtiwale
rahulvinay51 at gmail.com
Tue Feb 26 09:00:41 EST 2019
Hello,
I was going through the chapter as per the below link :
https://docs.python.org/3/tutorial/errors.html#handling-exceptions
The code shown is as below:
class B(Exception):
pass
class C(B):
pass
class D(C):
pass
for cls in [B, C, D]:
try:
raise cls()
except D:
print("D")
except C:
print("C")
except B:
print("B")
- Now as per the above code the statement written below confused me a little:
*"A class in an except
<https://docs.python.org/3/reference/compound_stmts.html#except>
clause is compatible with an exception if it is
the same class or a base class thereof (but not the other way around — an
except clause listing a derived class is not compatible with a base class)."*
- A class in the except clause is compatible with an exception if it
is the same class: I agree to this.
- However, the next part "or a base class thereof" confused me. Does
this mean that if it is a base class
(i.e a class which inherits from the exception class and is the base
class of all the other classes C & D) only then will it be compatible?
- Because if i reverse the order of the except clauses, the only
prints would be 'B','B' and 'B'.
I think this elaboration needs to be done.
I would request you to provide your insights on this.
Thanks and Regards,
Rahul
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/docs/attachments/20190226/f575409c/attachment-0001.html>
More information about the docs
mailing list