Nick Coghlan writes:
> (RDM is also right that the exception still has the effect of
> terminating the block early, but I view names as mnemonics rather
> than necessarily 100% accurate descriptions of things).
This is just way too ambiguous for my taste. I can't help reading
with contextlib.ignore(ExceptionIDontFeelLikeHandlingProperly):
stmt1
stmt2
stmt3
as
try:
stmt1
except ExceptionIDontFeelLikeHandlingProperly:
pass
try:
stmt2
except ExceptionIDontFeelLikeHandlingProperly:
pass
try:
stmt3
except ExceptionIDontFeelLikeHandlingProperly:
pass
rather than
try:
stmt1
stmt2
stmt3
except ExceptionIDontFeelLikeHandlingProperly:
pass
It just feels like the exception should be suppressed at some level
"lower" than stmtN, so stmtN fails but the suite continues. How about
with contextlib.break_on(ExceptionIDontFeelLikeHandlingProperly):
stmt1
stmt2
stmt3
This is not 100% accurate Pythonically (there's no loop to break
here), but it does describe what the context manager does more
accurately, and it does effectively break out of the 'with' control
structure.
_______________________________________________
Python-Dev mailing list
[email protected]
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe:
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com