Error
Functions for working with JavaScript exceptions.
See Error
on MDN.
t
type t = Js.Exn.t
Represents a JavaScript exception.
fromException
let fromException: exn => option<t>
toException
let toException: t => exn
Turns an Error.t
into an exn
.
Examples
RESCRIPTlet error = Error.make("Something went wrong.")
let asExn = error->Error.toException // `asExn` is now type `exn`
stack
let stack: t => option<string>
stack(error)
retrieves the stack
property of the error, if it exists. The stack is a list of what functions were called, and what files they are defined in, prior to the error happening.
See Error.prototype.stack
on MDN.
Example
RESCRIPTlet error = Error.make("error")
Console.log(error->Error.stack) // Logs `stack` if it exists on `someError`
message
let message: t => option<string>
message(error)
retrieves the message
property of the error, if it exists.
See Error.prototype.message
on MDN.
Example
RESCRIPTlet error = Error.SyntaxError.make("Some message here")
Console.log(error->Error.message) // Logs "Some message here" to the console
name
let name: t => option<string>
name(error)
retrieves the name
property of the error, if it exists.
See Error.prototype.name
on MDN.
Example
RESCRIPTlet error = Error.SyntaxError.make("Some message here")
Console.log(error->Error.name) // Logs "SyntaxError" to the console
fileName
let fileName: t => option<string>
fileName(error)
retrieves the fileName
property of the error, if it exists.
See Error.prototype.fileName
on MDN.
make
let make: string => t
make(message)
creates a new error, setting its message
to the provided value.
See Error
on MDN.
Example
RESCRIPTlet error = Error.make("Some message here")
Console.log(error->Error.message) // Logs "Some message here" to the console
Console.log(error->Error.name) // Logs "Error" to the console, because this is a regular error
raise
let raise: t => 'a
Raises (throws in JavaScript language) the provided Error.t
, which will stop execution.
Examples
RESCRIPTlet error = Error.make("Everything is upside down.")
if 5 > 10 {
error->Error.raise
} else {
Console.log("Phew, sanity still rules.")
}
panic
let panic: string => 'a
Raises a panic exception with the given message.
A panic exception is a native JavaScript exception that is not intended to be caught and handled. Compared to a ReScript exception this will give a better stack trace and debugging experience.
Examples
RESCRIPTError.panic("Uh oh. This was unexpected!")