X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=eightsync%2Fagenda.scm;h=7ee0ec4d9dd11d24350905eabcb90f2199e18896;hb=b07ab146b53a1305de96cbc6f9844660920329d5;hp=27c0d7d2371feb023853372035ad7e810391622f;hpb=cfccc4dee6478d80e2f45f72c0ab83b776d99503;p=8sync.git diff --git a/eightsync/agenda.scm b/eightsync/agenda.scm index 27c0d7d..7ee0ec4 100644 --- a/eightsync/agenda.scm +++ b/eightsync/agenda.scm @@ -67,6 +67,12 @@ catch-8sync catch-%8sync + ;; used for introspecting the error, but a method for making + ;; is not exposed + wrapped-exception? + wrapped-exception-key wrapped-exception-args + wrapped-exception-stacks + print-error-and-continue %current-agenda @@ -512,7 +518,6 @@ return the wrong thing via (%8sync) and trip themselves up." ;; If something bad happened and we didn't catch it, ;; we'll wrap it up in such a way that the continuation ;; can address it - ;; @@: For this stack to work doesn't it have to be (lambda (key . args) (cond ((eq? key '8sync-caught-error) @@ -693,10 +698,11 @@ return the wrong thing via (%8sync) and trip themselves up." (agenda-queue agenda)) (loop agenda)))))) -(define (print-error-and-continue . args) +(define (print-error-and-continue key . args) "Frequently used as pre-unwind-handler for agenda" - (format (current-error-port) "\n*** Caught exception with arguments: ~s ***\n" - args) + (format (current-error-port) + "\n*** Caught exception with key '~s and arguments: ~s ***\n" + key args) (display-backtrace (make-stack #t 1 0) (current-error-port)) (newline (current-error-port)))