Module Js.Exn
Utilities for dealing with Js exceptions
type ttype exn += private| Error of tval asJsExn : exn -> t optionval stack : t -> string optionval message : t -> string optionval name : t -> string optionval fileName : t -> string optionval isCamlExceptionOrOpenVariant : 'a -> boolinternal use only
val anyToExnInternal : 'a -> exnanyToExnInternal obj will take any value obj and wrap it in a Js.Exn.Error if given value is not an exn already. If obj is an exn, it will return obj without any changes.
This function is mostly useful for cases where you want to unify a type of a value that potentially is either exn, a JS error, or any other JS value really (e.g. for a value passed to a Promise.catch callback)
IMPORTANT: This is an internal API and may be changed / removed any time in the future.
ocaml
switch (Js.Exn.unsafeAnyToExn("test")) {
| Js.Exn.Error(v) =>
switch (Js.Exn.message(v)) {
| Some(str) => Js.log("We won't end up here")
| None => Js.log2("We will land here: ", v)
}
}val raiseError : string -> 'aRaise Js exception Error object with stacktrace
val raiseEvalError : string -> 'aval raiseRangeError : string -> 'aval raiseReferenceError : string -> 'aval raiseSyntaxError : string -> 'aval raiseTypeError : string -> 'aval raiseUriError : string -> 'a