On Fri, Jun 1, 2018 at 12:52 AM, Antoine Pitrou
On Thu, 31 May 2018 07:49:58 -0700 Ethan Furman
wrote: On 05/31/2018 07:36 AM, Nick Coghlan wrote:
The exception machinery deliberately attempts to avoid instantiating exception objects whenever it can, but that gets significantly more difficult if we always need to create the instance before we can decide whether or not the raised exception matches the given exception handler criteria.
Why is this? Doesn't the exception have to be instantiated at some point, even if just to print to stderr?
Nick is talking about exceptions that are ultimately silenced, especially when caught from C code. You're right that, once caught from Python code, the exception *has* to be instantiated (since it is bound to a user-visible variable).
Big and common example: Loop termination by raising StopIteration. ChrisA