From 8a99f51bf9390e488b97f6d40cfa0a94d38aa7a4 Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Thu, 23 Jan 2025 19:46:43 +0100 Subject: [PATCH] Handle when the wrong number of values is returned in the web server --- knots/web-server.scm | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/knots/web-server.scm b/knots/web-server.scm index 58c1883..0c2d3fb 100644 --- a/knots/web-server.scm +++ b/knots/web-server.scm @@ -206,8 +206,25 @@ on the procedure being called at any particular time." stack (current-error-port) 2))))))) - (lambda (response body) - (sanitize-response request response body)))) + (match-lambda* + ((response body) + (sanitize-response request response body)) + (other + (let ((stack (make-stack #t)) + (exception + (make-exception-with-irritants + (list (make-exception-with-message + (simple-format + #f + "wrong number of values returned from handler, expecting 2, got ~A" + (length other))) + handler)))) + (print-exception + (current-error-port) + (stack-ref stack 2) + '%exception + (list exception)) + (raise-exception exception)))))) #:unwind? #t))))) (with-exception-handler write-response-exception-handler