Hello, I finally figured it out: Le mercredi 25 août 2021 à 21:08 +0200, Maxime Devos a écrit : > This also happens without #:continuable?. > Here's a simpler test case: > > (with-exception-handler > (lambda (exn) > (catch #t > (lambda () (error "to be caught")) > (lambda e (pk 'caught! e)))) > (lambda () (error "oops"))) > ---> In procedure raise-exceptiont: to be caught > > I don't know if this is a bug. It is not, it was in the documentation the whole time. The effective handler is the outmost handler, unless #:unwind? is #t. I was tricked by the obscure scheme jargon, but this works as expected:
(with-exception-handler (lambda (exn) (catch #t (lambda () (error "to be caught")) (lambda e (pk 'caught! e)))) (lambda () (error "oops")) #:unwind? #t)