GNU bug report logs -
#47677
[PATCH] condition-case success continuation
Previous Next
Reported by: Mattias Engdegård <mattiase <at> acm.org>
Date: Fri, 9 Apr 2021 20:28:02 UTC
Severity: wishlist
Tags: patch
Done: Mattias Engdegård <mattiase <at> acm.org>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
[[[ To any NSA and FBI agents reading my email: please consider ]]]
[[[ whether defending the US Constitution against all enemies, ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]
> There's the business of fixing `catch` in the same way. (A new bug could be opened for it, but since it's intimately related we might as well do it here.) As mentioned, `catch` has three problems:
> - no way to execute code when a throw is caught
> - no way to execute code when the body terminates normally
> - no way to catch both throws and errors
I do not agree that these are problems. catch and throw are ok
as they are, and we should leave them alone.
catch is meant for intentional exits, and condition-case is meant for
catching errors. If you want to handle both in one place, use both
constructs there.
If you want to do something after catch catches a throw, it is not hard
to implement that using the existing constructs.
(if (catch 'foo
(prog1 nil
...do stuff...)) ;; use (throw 'foo t) to exit
do-if-throw
do-if-no-throw)
given how rarely this is used, it's as easy as it needs to be, and
avoids making catch complicated.
--
Dr Richard Stallman (https://stallman.org)
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)
This bug report was last modified 4 years and 18 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.