Subject: bug#9463: 24.0.50; Errors should not be continuable

From: Stefan Monnier <[email-masked]>
Date: Thu, 08 Sep 2011 22:23:09 -0400

>>> emacs -Q -eval '(let ((debug-on-error t)) (error "foo"))'
>>> enters the debugger.  Pressing c somehow manages to continue.  That make
>>> no sense to me.  The debugger should instead not continue and say
>>> that errors are not continuable.
>> 
>> "c" in errors now "continues" in the sense of "do what would have
>> happened if the debugger had not been called".  I.e. it will actually
>> signal the error which can then be caught by condition-cases further up
>> the stack, .... I.e. it's very similar to what happens with "q", but is
>> often cleaner.
> I think the "do what would have happened if the debugger had not been
> called" thing should be a different command, like resignal or abort.

Why?  When the debugger is called in a non-error case, the "c" does just
that "do whatever would have happened if the debug call had no taken place".

> c should only continue from truly continuable situations, like
> breakpoints.

Again: why?

        Stefan

PS: The change you seem to dislike is a bug-fix in my opinion, and it has
fixed a few real problems (e.g. when you enter the debugger from within
a minibuffer, you can now continue your minibuffer operation, whereas
earlier you could only abort back to the top-level).