(assert pred
{:keys [type message data cause] :or {type default-error-type} :as m})
Evaluates pred
and return an MerrError if it does not evaluate to logical true.
=> (assert true {:message "foo"})
nil
=> (assert false {:message "foo"})
(err {:message "foo"})
Evaluates `pred` and return an MerrError if it does not evaluate to logical true. ``` => (assert true {:message "foo"}) nil => (assert false {:message "foo"}) (err {:message "foo"}) ```
(cause e)
Get error cause.
=> (cause (err {:message "foo" :cause (err {:message "bar"})}))
(err {:message "bar"})
Get error cause. ``` => (cause (err {:message "foo" :cause (err {:message "bar"})})) (err {:message "bar"}) ```
(data e)
Get error custom data.
=> (data (err {:message "bar" :data {:hello "world"}}))
{:hello "world"}
Get error custom data. ``` => (data (err {:message "bar" :data {:hello "world"}})) {:hello "world"} ```
(err)
(err {:keys [type message data cause] :or {type default-error-type} :as m})
Returns value as MerrError
.
NOTE Default error type is :error
=> (:type (err {:message "hello"}))
:error
=> (:type (err {:type :custom-error :message "hello"}))
:custom-error
=> (:data (err {:data {:foo "bar"}}))
{:foo "bar"}
Returns value as `MerrError`. **NOTE** Default error type is `:error` ``` => (:type (err {:message "hello"})) :error => (:type (err {:type :custom-error :message "hello"})) :custom-error => (:data (err {:data {:foo "bar"}})) {:foo "bar"} ```
(err? x)
Returns true
if x is MerrError
.
=> (err? "foo")
false
=> (err? (err {:message "foo"}))
true
Returns `true` if x is `MerrError`. ``` => (err? "foo") false => (err? (err {:message "foo"})) true ```
(let err-sym bindings & body)
(let &form &env err-sym bindings & body)
binding => binding-form init-expr
If init-expr is not MerrError
, binding-form bound to the value,
if not, err-sym
bound to the MerrError
value and rest bindings are skipped.
=> (let +err+ [a 1
=> b (inc a)]
=> [a b (err? +err+)])
[1 2 false]
=> (let +err+ [a (err {:message "ERR"})
=> b (inc a)]
=> [a b (err? +err+)])
[nil nil true]
binding => binding-form init-expr If init-expr is not `MerrError`, binding-form bound to the value, if not, `err-sym` bound to the `MerrError` value and rest bindings are skipped. ``` => (let +err+ [a 1 => b (inc a)] => [a b (err? +err+)]) [1 2 false] => (let +err+ [a (err {:message "ERR"}) => b (inc a)] => [a b (err? +err+)]) [nil nil true] ```
(message e)
Get error message.
=> (message (err {:type :foo :message "bar"}))
"bar"
Get error message. ``` => (message (err {:type :foo :message "bar"})) "bar" ```
(type e)
Get error type.
=> (type (err {:type :foo :message "bar"}))
:foo
Get error type. ``` => (type (err {:type :foo :message "bar"})) :foo ```
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close