API / Core / Error

Error

t

RESCRIPT
type t = Js.Exn.t

Represents a JavaScript exception.

fromException

RESCRIPT
let fromException: exn => option<t>

toException

RESCRIPT
let toException: t => exn

Turns an Error.t into an exn.

Examples

RESCRIPT
let error = Error.make("Something went wrong.") let asExn = error->Error.toException // `asExn` is now type `exn`

stack

RESCRIPT
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

RESCRIPT
Console.log(someError->Error.stack) // Logs `stack` if it exists on `someError`

message

RESCRIPT
let message: t => option<string>

message(error) retrieves the message property of the error, if it exists.

See Error.prototype.message on MDN.

Example

RESCRIPT
let error = Error.SyntaxError.make("Some message here") Console.log(error->Error.message) // Logs "Some message here" to the console

name

RESCRIPT
let name: t => option<string>

name(error) retrieves the name property of the error, if it exists.

See Error.prototype.name on MDN.

Example

RESCRIPT
let error = Error.SyntaxError.make("Some message here") Console.log(error->Error.name) // Logs "SyntaxError" to the console

fileName

RESCRIPT
let fileName: t => option<string>

fileName(error) retrieves the fileName property of the error, if it exists.

See Error.prototype.fileName on MDN.

make

RESCRIPT
let make: string => t

make(message) creates a new error, setting its message to the provided value.

See Error on MDN.

Example

RESCRIPT
let 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

RESCRIPT
let raise: t => 'a

Raises (throws in JavaScript language) the provided Error.t, which will stop execution.

Examples

RESCRIPT
let error = Error.make("Everything is upside down.") if 5 > 10 { error->Error.raise } else { Console.log("Phew, sanity still rules.") }

panic

RESCRIPT
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

RESCRIPT
Error.panic("Uh oh. This was unexpected!")