[Python-Dev] Revert #12085 fix for __del__ attribute error message

Cameron Simpson cs at zip.com.au
Thu Sep 26 01:05:20 CEST 2013

[ I've replied to two messages here: Georg's and Glenn's (supporting MRAB's).
  - Cameron

On 25Sep2013 08:22, Georg Brandl <g.brandl at gmx.net> wrote:
| Am 24.09.2013 00:11, schrieb Greg Ewing:
| > How about something like "Uncaught exception in __del__
| > method ignored"? It explains fairly clearly what has
| > happened, and also indicates what do do about it --
| > catch it in the __del__ method.
| "Exception in __del__ caught and not propagated:"
| Georg

On 24Sep2013 09:33, Glenn Linderman <v+python at g.nevcal.com> wrote:
| [MRAB]:
| >> Why not just say something like "Cannot propagate exception..."; it's
| >> simpler than "Unpropagatable exception...". [...]
| First one I've heard that accurately and unambiguously and briefly
| describes the issue.
| +1

I'm strongly in favour of Georg's one ("Exception in __del__ caught and not propagated").


It says simply and clearly what has happened.
It denotes the relevant context (__del__) in which it happened.
The reader can then decide to find out why that decision may have been made.

Why not MRAB's? ("Cannot propagate exception...")

While better than "Unpropagatable exception" and "unraisable" and
"unreraisable", it has the same flaw that I think underlies Antoine's
concerns: it suggests the reason there's an error printed instead
of further propagation is a _property of the exception_.
It doesn't say it outright, but as an outsider that is definitely
what I would at first infer.

So: a small +0.1 for "Cannot propagate exception..."

And: a big +2 for "Exception in __del__ caught and not propagated:".

Cameron Simpson <cs at zip.com.au>

Let the bullet of your thought achieve the true and final path of its
trajectory before it reaches the ear of the listener, lest it plow out the
other side of his head. - Henry David Thoreau

More information about the Python-Dev mailing list