Nick Coghlan added the comment:

Also clarifying a point that came up later in the thread [1]: one of the 
motivating examples that came up in the thread was the idea of using this to 
catch AttributeError exceptions in property and __getattr__ implementations and 
convert them to RuntimeError.

I don't actually think that's a good use case: using a static analysis tool 
like 'pylint -E' or mypy, or the builtin error checking in an advanced IDE like 
PyCharm is a much better approach to detecting that kind of problem.

Instead, the valid use cases I see for runtime exception conversion are in:

- framework development, where you're invoking arbitrary code that you didn't 
write and want to ensure it can't falsely trigger an exception based event 
reporting protocol (this is the PEP 479 use case, and we may end up doing this 
for the exec_module() hook in the import system as well)

- adapting between two different exception based event reporting protocols 
(e.g. KeyError <-> AttributeError, StopIteration -> AsyncStopIteration)

[1] https://mail.python.org/pipermail/python-ideas/2017-June/046234.html

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue30792>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to