git.fiddlerwoaroof.com
Browse code

better error handling

fiddlerwoaroof authored on 23/01/2016 05:42:14
Showing 1 changed files
... ...
@@ -1,6 +1,7 @@
1 1
 (declaim (optimize (debug 3) (speed 0 ) (safety 3)) )
2 2
 ;;;; lyangulus.lisp
3 3
 
4
+(ql:quickload :clack-errors)
4 5
 (in-package #:lyangulus)
5 6
 (defparameter *submissions* nil)
6 7
 (defparameter *by-distinct* (make-hash-table :test #'equalp))
... ...
@@ -122,6 +123,11 @@
122 123
                       (if (equal approval "-") "rejected"))))))
123 124
         '(302 (:location "/") ("Done"))))
124 125
 
126
+(setf (ningle:route *app* "/1" :method :GET)
127
+      (i-lambda (params)
128
+        `(200 ()
129
+          (,(format nil "~a" (/ 1 0))))))
130
+
125 131
 (setf (ningle:route *app* "/login" :method :GET)
126 132
       (i-lambda (params)
127 133
         `(200 ()
... ...
@@ -199,12 +205,13 @@
199 205
                     (intern (string-upcase (elt tmp 1)) 'keyword)
200 206
                     :hunchentoot)))
201 207
       (push (clack:clackup
202
-              (lack.builder:builder
203
-                :session
204
-                (:static :path "/static/" :root #p"./static/")
205
-                :backtrace
206
-                *app*
207
-                )
208
+              (funcall clack-errors:*clack-error-middleware*
209
+                       (lack.builder:builder
210
+                         :session
211
+                         (:static :path "/static/" :root #p"./static/")
212
+                         :backtrace
213
+                         *app*
214
+                         ))
208 215
               :port 9090
209 216
               :server server)
210 217
             handler)))