From 0ea7b7f83137d9f3d8b9d9eb8746164481f7213e Mon Sep 17 00:00:00 2001 From: Tony Garnock-Jones Date: Mon, 27 Oct 2014 17:11:37 -0400 Subject: [PATCH] Correct types in exception handling. Closes #8 --- process.rkt | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/process.rkt b/process.rkt index 518eb93..99975c6 100644 --- a/process.rkt +++ b/process.rkt @@ -18,13 +18,11 @@ (send-to-user* (process-debug-name p) (process-pid p) (e) failure-result enclosed-expr)) (define-syntax-rule (send-to-user* debug-name pid (e) failure-result enclosed-expr) - (with-handlers ([exn:fail? (lambda: ([e : Reason]) - (if (exn? e) - (marketplace-log 'error "Process ~v(~v):~n~a~n" - debug-name pid (exn-message e)) - (marketplace-log 'error "Process ~v(~v):~n~v~n" - debug-name pid e)) - failure-result)]) + (with-handlers ([exn:fail? (lambda: ([the-exn : exn:fail]) + (let: ((e : Reason (cast the-exn Reason))) + (marketplace-log 'error "Process ~v(~v):~n~a~n" + debug-name pid (exn-message the-exn)) + failure-result))]) (marketplace-log 'debug "Entering process ~v(~v)" debug-name pid) (define result enclosed-expr) (marketplace-log 'debug "Leaving process ~v(~v)" debug-name pid)