|
13 | 13 |
|
14 | 14 | (defn wrap-stacktrace-log
|
15 | 15 | "Wrap a handler such that exceptions are logged to *err* and then rethrown.
|
| 16 | +
|
16 | 17 | Accepts the following options:
|
17 | 18 |
|
18 | 19 | :color? - if true, apply ANSI colors to stacktrace (default false)"
|
|
40 | 41 | (defn- elem-partial [elem]
|
41 | 42 | (if (:clojure elem)
|
42 | 43 | [:tr.clojure
|
43 |
| - [:td.source (h (source-str elem))] |
44 |
| - [:td.method (h (clojure-method-str elem))]] |
| 44 | + [:td.source (h (source-str elem))] |
| 45 | + [:td.method (h (clojure-method-str elem))]] |
45 | 46 | [:tr.java
|
46 |
| - [:td.source (h (source-str elem))] |
47 |
| - [:td.method (h (java-method-str elem))]])) |
| 47 | + [:td.source (h (source-str elem))] |
| 48 | + [:td.method (h (java-method-str elem))]])) |
48 | 49 |
|
49 | 50 | (defn- html-exception [ex]
|
50 | 51 | (let [[ex & causes] (iterate :cause (parse-exception ex))]
|
51 | 52 | (html5
|
52 |
| - [:head |
53 |
| - [:title "Ring: Stacktrace"] |
54 |
| - (style-resource "ring/css/stacktrace.css")] |
55 |
| - [:body |
56 |
| - [:div#exception |
57 |
| - [:h1 (h (.getName ^Class (:class ex)))] |
58 |
| - [:div.message (h (:message ex))] |
| 53 | + [:head |
| 54 | + [:title "Ring: Stacktrace"] |
| 55 | + (style-resource "ring/css/stacktrace.css")] |
| 56 | + [:body |
| 57 | + [:div#exception |
| 58 | + [:h1 (h (.getName ^Class (:class ex)))] |
| 59 | + [:div.message (h (:message ex))] |
| 60 | + [:div.trace |
| 61 | + [:table |
| 62 | + [:tbody (map elem-partial (:trace-elems ex))]]] |
| 63 | + (for [cause causes :while cause] |
| 64 | + [:div#causes |
| 65 | + [:h2 "Caused by " [:span.class (h (.getName ^Class (:class cause)))]] |
| 66 | + [:div.message (h (:message cause))] |
59 | 67 | [:div.trace
|
60 |
| - [:table |
61 |
| - [:tbody (map elem-partial (:trace-elems ex))]]] |
62 |
| - (for [cause causes :while cause] |
63 |
| - [:div#causes |
64 |
| - [:h2 "Caused by " [:span.class (h (.getName ^Class (:class cause)))]] |
65 |
| - [:div.message (h (:message cause))] |
66 |
| - [:div.trace |
67 |
| - [:table |
68 |
| - [:tbody (map elem-partial (:trace-elems cause))]]]])]]))) |
| 68 | + [:table |
| 69 | + [:tbody (map elem-partial (:trace-elems cause))]]]])]]))) |
69 | 70 |
|
70 | 71 | (defn- text-ex-response [e]
|
71 | 72 | (-> (response (with-out-str (pst e)))
|
|
98 | 99 | (handler request)
|
99 | 100 | (catch Throwable ex
|
100 | 101 | (ex-response request ex))))
|
101 |
| - ([request respond raise] |
| 102 | + ([request respond _] |
102 | 103 | (try
|
103 | 104 | (handler request respond (fn [ex] (respond (ex-response request ex))))
|
104 | 105 | (catch Throwable ex
|
|
0 commit comments