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 Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com