(ancestors tag)Like clojure.core/ancestors but scoped on our ex-info type hierarchy
Like clojure.core/ancestors but scoped on our ex-info type hierarchy
(assert-spec-valid spex x)(assert-spec-valid spec x data)Asserts that x conforms to spec, otherwise throws with
ex-invalid-spec
Asserts that `x` conforms to `spec`, otherwise throws with `ex-invalid-spec`
(catch e type-key handler continue)catch-data as a function, takes an exception, tries to match it
against type-key from its ex-data.type, on match returns call to
handler with the ex-data, otherwise continue with the original
exception.
catch-data as a function, takes an exception, tries to match it against `type-key` from its ex-data.type, on match returns call to `handler` with the ex-data, otherwise `continue` with the original exception.
(datafy ex)Convenience function to call datafy on a potential exception
Convenience function to call datafy on a potential exception
(derive tag parent)Like clojure.core/derive but scoped on our ex-info type hierarchy
Like clojure.core/derive but scoped on our ex-info type hierarchy
(descendants tag)Like clojure.core/descendants but scoped on our ex-info type hierarchy
Like clojure.core/descendants but scoped on our ex-info type hierarchy
(ex-busy msg)(ex-busy msg data)(ex-busy msg data cause)Returns an ex-info with ex-data :type set to :exoscale.ex/busy. Rest of the arguments match ex-info
Returns an ex-info with ex-data `:type` set to `:exoscale.ex/busy`. Rest of the arguments match `ex-info`
(ex-busy! msg)(ex-busy! msg data)(ex-busy! msg data cause)Builds an exception with ex-busy and throws it.
Builds an exception with ex-busy and throws it.
(ex-conflict msg)(ex-conflict msg data)(ex-conflict msg data cause)Returns an ex-info with ex-data :type set to :exoscale.ex/conflict. Rest of the arguments match ex-info
Returns an ex-info with ex-data `:type` set to `:exoscale.ex/conflict`. Rest of the arguments match `ex-info`
(ex-conflict! msg)(ex-conflict! msg data)(ex-conflict! msg data cause)Builds an exception with ex-conflict and throws it.
Builds an exception with ex-conflict and throws it.
(ex-fault msg)(ex-fault msg data)(ex-fault msg data cause)Returns an ex-info with ex-data :type set to :exoscale.ex/fault. Rest of the arguments match ex-info
Returns an ex-info with ex-data `:type` set to `:exoscale.ex/fault`. Rest of the arguments match `ex-info`
(ex-fault! msg)(ex-fault! msg data)(ex-fault! msg data cause)Builds an exception with ex-fault and throws it.
Builds an exception with ex-fault and throws it.
(ex-forbidden msg)(ex-forbidden msg data)(ex-forbidden msg data cause)Returns an ex-info with ex-data :type set to :exoscale.ex/forbidden. Rest of the arguments match ex-info
Returns an ex-info with ex-data `:type` set to `:exoscale.ex/forbidden`. Rest of the arguments match `ex-info`
(ex-forbidden! msg)(ex-forbidden! msg data)(ex-forbidden! msg data cause)Builds an exception with ex-forbidden and throws it.
Builds an exception with ex-forbidden and throws it.
(ex-incorrect msg)(ex-incorrect msg data)(ex-incorrect msg data cause)Returns an ex-info with ex-data :type set to :exoscale.ex/incorrect. Rest of the arguments match ex-info
Returns an ex-info with ex-data `:type` set to `:exoscale.ex/incorrect`. Rest of the arguments match `ex-info`
(ex-incorrect! msg)(ex-incorrect! msg data)(ex-incorrect! msg data cause)Builds an exception with ex-incorrect and throws it.
Builds an exception with ex-incorrect and throws it.
(ex-info msg type)(ex-info msg type data)(ex-info msg type data cause)Like clojure.core/ex-info but adds validation of the ex-data,
automatic setting of the data :type from argument and potential
derivation. You can specify type as either a keyword or a tuple of
[<type> [<derivation>+]].
Like `clojure.core/ex-info` but adds validation of the ex-data, automatic setting of the data `:type` from argument and potential derivation. You can specify type as either a keyword or a tuple of `[<type> [<derivation>+]]`.
(ex-interrupted msg)(ex-interrupted msg data)(ex-interrupted msg data cause)Returns an ex-info with ex-data :type set to :exoscale.ex/interrupted. Rest of the arguments match ex-info
Returns an ex-info with ex-data `:type` set to `:exoscale.ex/interrupted`. Rest of the arguments match `ex-info`
(ex-interrupted! msg)(ex-interrupted! msg data)(ex-interrupted! msg data cause)Builds an exception with ex-interrupted and throws it.
Builds an exception with ex-interrupted and throws it.
(ex-invalid-spec spec x)(ex-invalid-spec spec x data)Returns an ex-info when value x does not conform to spec spex
Returns an ex-info when value `x` does not conform to spec `spex`
(ex-not-found msg)(ex-not-found msg data)(ex-not-found msg data cause)Returns an ex-info with ex-data :type set to :exoscale.ex/not-found. Rest of the arguments match ex-info
Returns an ex-info with ex-data `:type` set to `:exoscale.ex/not-found`. Rest of the arguments match `ex-info`
(ex-not-found! msg)(ex-not-found! msg data)(ex-not-found! msg data cause)Builds an exception with ex-not-found and throws it.
Builds an exception with ex-not-found and throws it.
(ex-type ex)Returns the type of the ex-info if possible
Returns the `type` of the ex-info if possible
(ex-unavailable msg)(ex-unavailable msg data)(ex-unavailable msg data cause)Returns an ex-info with ex-data :type set to :exoscale.ex/unavailable. Rest of the arguments match ex-info
Returns an ex-info with ex-data `:type` set to `:exoscale.ex/unavailable`. Rest of the arguments match `ex-info`
(ex-unavailable! msg)(ex-unavailable! msg data)(ex-unavailable! msg data cause)Builds an exception with ex-unavailable and throws it.
Builds an exception with ex-unavailable and throws it.
(ex-unsupported msg)(ex-unsupported msg data)(ex-unsupported msg data cause)Returns an ex-info with ex-data :type set to :exoscale.ex/unsupported. Rest of the arguments match ex-info
Returns an ex-info with ex-data `:type` set to `:exoscale.ex/unsupported`. Rest of the arguments match `ex-info`
(ex-unsupported! msg)(ex-unsupported! msg data)(ex-unsupported! msg data cause)Builds an exception with ex-unsupported and throws it.
Builds an exception with ex-unsupported and throws it.
(isa? child parent)Like clojure.core/isa? but scoped on our ex-info type hierarchy
Like clojure.core/isa? but scoped on our ex-info type hierarchy
(map->ex-info m)(map->ex-info {:exoscale.ex/keys [message type deriving data cause]}
{:exoscale.ex/keys [derive?] :or {derive? false}})Turns a datafy'ied ex/ex-info into an ex-info
Turns a datafy'ied ex/ex-info into an ex-info
(parents tag)Like clojure.core/parents but scoped on our ex-info type hierarchy
Like clojure.core/parents but scoped on our ex-info type hierarchy
(try+ & xs)Like try but with support for ex-info/ex-data.
If you pass a catch-data form it will try to match an
ex-info :exoscale.ex/type key (or just :type), or it's potential
ancestors in the local hierarchy.
ex-info clauses are checked first, in the order they were specified. catch-data will take as arguments a type key, and a binding for the ex-data of the ex-info instance.
(try [...] (catch ::something my-ex-data (do-something my-ex-info)) (catch ::something-else {:as my-ex-data :keys [foo bar]} (do-something foo bar)) (catch Exception e (do-something e)) (catch OtherException e (do-something e)) (finally :and-done))
You can specify normal catch clauses for regular java errors and/or finally these are left untouched.
Like try but with support for ex-info/ex-data.
If you pass a `catch-data` form it will try to match an
ex-info :exoscale.ex/type key (or just :type), or it's potential
ancestors in the local hierarchy.
ex-info clauses are checked first, in the order they were specified.
catch-data will take as arguments a type key, and a binding for the
ex-data of the ex-info instance.
(try
[...]
(catch ::something my-ex-data
(do-something my-ex-info))
(catch ::something-else {:as my-ex-data :keys [foo bar]}
(do-something foo bar))
(catch Exception e
(do-something e))
(catch OtherException e
(do-something e))
(finally :and-done))
You can specify normal catch clauses for regular java errors and/or
finally these are left untouched.(type d)Returns type value from ex-data map (not the ex-info instance, use
ex-type for this
Returns `type` value from ex-data map (not the ex-info instance, use `ex-type` for this
(type? ex t)Returns true if ex is an ex-info with descendant/type of type
Returns true if `ex` is an ex-info with descendant/type of `type`
(underive tag parent)Like clojure.core/underive but scoped on our ex-info type hierarchy
Like clojure.core/underive but scoped on our ex-info type hierarchy
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 |