(open-trapdoor)

2009.01.21

Thanks to the ever helpful Matthew Flatt, I can now catch scheme errors before they cause an exception and stop everything running. It's also possible to detect that an error has occurred and do something else (play a suitable sample, electrify the keyboard...)

(define error-happened #f)

(define (my-error-handler n)
    (set! error-happened #t))

 (with-handlers ([(lambda (x) #t) my-error-handler])
    (modulo 0 1 2)) ; some erroneous code

(when (error-happened)
    (open-trapdoor))

You must be logged in to post a comment.