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.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4