Creates an error object with the given code and message, plus an optional data payload.
If thrown in an RPC method handler, the error will be sent back to the caller.
Error codes 1001-1999 are reserved for built-in errors (see RpcError.ErrorCode for their meanings).
Optional
data: stringOptional
dataOptional
stackStatic
ErrorStatic
Internal
ErrorStatic
stackThe Error.stackTraceLimit
property specifies the number of stack frames
collected by a stack trace (whether generated by new Error().stack
or
Error.captureStackTrace(obj)
).
The default value is 10
but may be set to any valid JavaScript number. Changes
will affect any stack trace captured after the value has been changed.
If set to a non-number value, or set to a negative number, stack traces will not capture any frames.
Static
builtInternal
Creates an error object from the code, with an auto-populated message.
Optional
data: stringStatic
captureCreates a .stack
property on targetObject
, which when accessed returns
a string representing the location in the code at which
Error.captureStackTrace()
was called.
const myObject = {};
Error.captureStackTrace(myObject);
myObject.stack; // Similar to `new Error().stack`
The first line of the trace will be prefixed with
${myObject.name}: ${myObject.message}
.
The optional constructorOpt
argument accepts a function. If given, all frames
above constructorOpt
, including constructorOpt
, will be omitted from the
generated stack trace.
The constructorOpt
argument is useful for hiding implementation
details of error generation from the user. For instance:
function a() {
b();
}
function b() {
c();
}
function c() {
// Create an error without stack trace to avoid calculating the stack trace twice.
const { stackTraceLimit } = Error;
Error.stackTraceLimit = 0;
const error = new Error();
Error.stackTraceLimit = stackTraceLimit;
// Capture the stack trace above function b
Error.captureStackTrace(error, b); // Neither function c, nor b is included in the stack trace
throw error;
}
a();
Optional
constructorOpt: FunctionStatic
fromStatic
prepare
Specialized error handling for RPC methods.
Instances of this type, when thrown in a method handler, will have their
message
serialized and sent across the wire. The caller will receive an equivalent error on the other side.Built-in types are included but developers may use any string, with a max length of 256 bytes.