continuable exceptions added by iterrogo on Fri Sep 5 18:24:56 2014

(define (test)
  (let ((old-handler (current-exception-handler)))
    (with-exception-handler
     (lambda (exn)
       (cond (((condition-predicate 'bad-type) exn)
              (print "error")
              (print "0: abort")
              (print "1: enter value")
              (if (= (read) 0)
                  (old-handler exn)
                  (begin (display "enter new value: ")
                         (read))))
             (else (old-handler exn))))
     (lambda ()
       (let ((a 'x))
         (+ 1 (if (number? a)
                   a
                   (signal (make-property-condition 'bad-type 'bar 'baz)))))))))

#;1> (test)
error
0: abort
1: enter value
1
enter new value: 6
7