Minimal and good enough error handling library for Clojure/ClojureScript
This library is based on "Good Enough" error handling in Clojure.
-
Easy to imagine behavior
-
Minimum to remember
-
All usage and examples are documented in docstring
-
(require '[merr.core :as merr])
;; => nil
;; for ClojureScript
;; (require '[merr.core :as merr :include-macros true])
(merr/let +err+ [foo 1
bar (merr/err)
baz (* bar 2)]
{:+err+ +err+ :foo foo :bar bar :baz baz})
;; => {:+err+ (merr/err), :foo 1, :bar nil, :baz nil}
(merr/let err [a 10
b (inc a)
c (inc b)]
(if err
(merr/message err)
(str "c = " c)))
;; => "c = 12"
(merr/let err [a 10
b (merr/err {:message "ERROR"})
c (inc b)]
(if err
(merr/message err)
(str "c = " c)))
;; => "ERROR"
Copyright © 2018-2021 Masashi Iizuka
Distributed under the Eclipse Public License either version 1.0 or (at your option) any later version.