<HTML><BODY>I'm writeing a parser.<br>So I want to see in parser exception what happend and when (not only where).<br><br>(define (parse-item item)<br> (with-handlers ([exn? (lambda (e) (raise (struct-copy exn e [message (format "At item ~a\n~a" item (exn-message e))])))])<br> ....))<br><br>But this way I lose all exception types. Is there a way to change exception message, saving its type, except long copy/paste like<br>(with-handlers ([exn:fail:contract:arity? (raise (struct-copy exn:fail:contract:arity ...))]<br> [exn:fil:contract? (raise (struct-copy exn:fail:contract ...))]<br> ...) <br> ...)<br><br>?<br><br>-- <br>Roman Klochkov</BODY></HTML>