This was something I really loved during my time in Common Lisp. This was a gem that I was hoping would make it into Clojure, but I think around version 1.3 they decided to abandon the idea and add a library to "make anything throwable" which totally missed the point in my opinion.
Are there any other languages that allow the calling scope to specify how lower-level functions handle errors without unwinding the stack?
Are there any other languages that allow the calling scope to specify how lower-level functions handle errors without unwinding the stack?