On 4/8/21 11:25 AM, Chris Angelico wrote:

Similar question: What would be the semantics of this?

with contextlib.suppress(BaseException):
     a = b / c
except BaseException as e:
     print(e)

What types of exception could be caught and what types couldn't?

Well, if every exception is derived from BaseException (they are) and contextlib.suppress(BaseException) suppresses all BaseException-derived exceptions (it does) then the semantics of the above are:

- "a" will be the result of "b / c" if no exception occurs
- otherwise, "a" will be whatever it was before the with-block
- no exception will ever be caught by the except-clause

Generally speaking, no exception that a context manager handles (i.e. 
suppresses) will ever be available to be caught.

--
~Ethan~
_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at 
https://mail.python.org/archives/list/python-ideas@python.org/message/6MECZSWSSBIJUTZQWLKSCJKO7PRZA5WT/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to