[Python-Dev] Revert #12085 fix for del attribute error message (original) (raw)
MRAB python at mrabarnett.plus.com
Tue Sep 24 11:58:54 CEST 2013
- Previous message: [Python-Dev] Revert #12085 fix for __del__ attribute error message
- Next message: [Python-Dev] Revert #12085 fix for __del__ attribute error message
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On 24/09/2013 09:06, Nick Coghlan wrote:
On 24 September 2013 17:34, Antoine Pitrou <solipsis at pitrou.net> wrote:
On Tue, 24 Sep 2013 17:25:10 +1000 Nick Coghlan <ncoghlan at gmail.com> wrote:
You are setting the bar unreasonably high for an error message that has to convey a complex concept in as few words as possible. There is NO wording that can concisely express the concepts involved without resorting to jargon, because the concepts behind it are *complex and unintuitive*. The current wording is flat out wrong, because the exception isn't being ignored, it's being printed to stderr. If it was genuinely being ignored, people wouldn't complain about it. Jargon that can be easily looked up with a search engine is greatly superior to a message that is simply wrong, as the former provides a gateway to understanding, just like coming across a word you don't understand when reading a novel. "Unraisable" is not a word I don't understand, it's a word that I understand and which conveys the wrong meaning. How is it wrong? At the point where the interpreter says "This exception is now unraisable", what, precisely, is it saying that is wrong? It isn't saying "this has never been raised". It is saying, "where it is currently being processed, this exception cannot be raised". If you want something that people won't understand, you can use something like "asynchronous exception". Asynchronous exception is even more wrong, because that's the terminology used for an exception injected into the current thread by a different thread. Preferring the status quo because you're holding out a forlorn hope for a concise wording that explains: I've proposed other options. "Automatically caught" says nothing about why the exception is being printed to stderr instead of propagating normally. Exceptions are automatically caught by any matching except clause all the time, but most of those don't result in errors printed to stderr. Why not just say something like "Cannot propagate exception..."; it's simpler than "Unpropagatable exception...".
- Previous message: [Python-Dev] Revert #12085 fix for __del__ attribute error message
- Next message: [Python-Dev] Revert #12085 fix for __del__ attribute error message
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]