(create-coercion-handler status)Creates a coercion exception handler.
Creates a coercion exception handler.
(create-exception-middleware)(create-exception-middleware handlers)Creates a Middleware that catches all exceptions. Takes a map
of identifier => exception request => response that is used to select
the exception handler for the thrown/raised exception identifier. Exception
identifier is either a Keyword or a Exception Class.
The following handlers special handlers are available:
| key | description | 
|---|---|
| ::exception/default | a default exception handler if nothing else matched (default default-handler). | 
| ::exception/wrap | a 3-arity handler to wrap the actual handler handler exception request => response | 
The handler is selected from the options map by exception identifier in the following lookup order:
:type of exception ex-data:type ancestors of exception ex-dataExample:
(require '[reitit.ring.middleware.exception :as exception])
;; type hierarchy
(derive ::error ::exception)
(derive ::failure ::exception)
(derive ::horror ::exception)
(defn handler [message exception request]
  {:status 500
   :body {:message message
          :exception (str exception)
          :uri (:uri request)}})
(exception/create-exception-middleware
  (merge
    exception/default-handlers
    {;; ex-data with :type ::error
     ::error (partial handler "error")
     ;; ex-data with ::exception or ::failure
     ::exception (partial handler "exception")
     ;; SQLException and all it's child classes
     java.sql.SQLException (partial handler "sql-exception")
     ;; override the default handler
     ::exception/default (partial handler "default")
     ;; print stack-traces for all exceptions
     ::exception/wrap (fn [handler e request]
                        (.printStackTrace e)
                        (handler e request))}))
Creates a Middleware that catches all exceptions. Takes a map
of `identifier => exception request => response` that is used to select
the exception handler for the thrown/raised exception identifier. Exception
identifier is either a `Keyword` or a Exception Class.
The following handlers special handlers are available:
| key                    | description
|------------------------|-------------
| `::exception/default`  | a default exception handler if nothing else matched (default [[default-handler]]).
| `::exception/wrap`     | a 3-arity handler to wrap the actual handler `handler exception request => response`
The handler is selected from the options map by exception identifier
in the following lookup order:
1) `:type` of exception ex-data
2) Class of exception
3) `:type` ancestors of exception ex-data
4) Super Classes of exception
5) The ::default handler
Example:
    (require '[reitit.ring.middleware.exception :as exception])
    ;; type hierarchy
    (derive ::error ::exception)
    (derive ::failure ::exception)
    (derive ::horror ::exception)
    (defn handler [message exception request]
      {:status 500
       :body {:message message
              :exception (str exception)
              :uri (:uri request)}})
    (exception/create-exception-middleware
      (merge
        exception/default-handlers
        {;; ex-data with :type ::error
         ::error (partial handler "error")
         ;; ex-data with ::exception or ::failure
         ::exception (partial handler "exception")
         ;; SQLException and all it's child classes
         java.sql.SQLException (partial handler "sql-exception")
         ;; override the default handler
         ::exception/default (partial handler "default")
         ;; print stack-traces for all exceptions
         ::exception/wrap (fn [handler e request]
                            (.printStackTrace e)
                            (handler e request))}))(default-handler e _)Default safe handler for any exception.
Default safe handler for any exception.
A preconfigured exception handling Middleware. To configure the exceptions handlers, use
create-exception-handler instead.
A preconfigured exception handling Middleware. To configure the exceptions handlers, use `create-exception-handler` instead.
(http-response-handler e _)Reads response from Exception ex-data :response
Reads response from Exception ex-data :response
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs | 
| ← | Move to previous article | 
| → | Move to next article | 
| Ctrl+/ | Jump to the search field |