Message331428
under: https://docs.python.org/3/tutorial/errors.html
Original it says:
"Note that if the except clauses were reversed (with except B first), it would have printed B, B, B — the first matching except clause is triggered."
It should read:
"Note that if the except clauses were reversed (with except B first), it would have printed D, D, D — the first matching except clause is triggered."
As D is the first expression in the print statement.
So if the expression is changed to "except B:"
class B(Exception):
pass
class C(B):
pass
class D(C):
pass
for cls in [B, C, D]:
try:
raise cls()
except B:
print("D")
except C:
print("C")
except B:
print("B")
Result is:
D
D
D |
|
Date |
User |
Action |
Args |
2018-12-09 12:40:06 | Alistair | set | recipients:
+ Alistair, docs@python |
2018-12-09 12:40:06 | Alistair | set | messageid: <1544359206.53.0.788709270274.issue35446@psf.upfronthosting.co.za> |
2018-12-09 12:40:06 | Alistair | link | issue35446 messages |
2018-12-09 12:40:06 | Alistair | create | |
|