By default, if no routes match, `nil` is returned, which is not valid response in Ring:
```clj
(require '[reitit.ring :as ring])
(defn handler [_]
{:status 200, :body ""})
(def app
(ring/ring-handler
(ring/router
["/ping" handler])))
(app {:uri "/invalid"})
; nil
```
Setting the default-handler as a second argument to `ring-handler`:
```clj
(def app
(ring/ring-handler
(ring/router
["/ping" handler])
(constantly {:status 404, :body ""})))
(app {:uri "/invalid"})
; {:status 404, :body ""}
```
To get more correct http error responses, `ring/create-default-handler` can be used. It differentiates `:not-found` (no route matched), `:method-not-accepted` (no method matched) and `:not-acceptable` (handler returned `nil`).