UNPKG

@serenity-js/core

Version:

The core Serenity/JS framework, providing the Screenplay Pattern interfaces, as well as the test reporting and integration infrastructure

80 lines 2.3 kB
/** * Base class for custom errors that may occur during execution of a test scenario. * * ## Defining a custom error * * ```ts * import { RuntimeError } from '@serenity-js/core' * * export class CustomError extends RuntimeError { * constructor(message: string, cause?: Error) { * super(CustomError, message, cause); * } * } * ``` * * ## Wrapping a sync error * * ```ts * try { * operationThatMightThrowAnError(); * } catch(error) { * // catch and re-throw * throw new CustomError('operationThatMightThrowAnError has failed', error); * } * ``` * * ## Wrapping an async error * * ```ts * operationThatMightRejectAPromise() * .catch(error => { * // catch and re-throw * throw new CustomError('operationThatMightThrowAnError has failed', error) * }) * ``` * * ## Registering a custom error with [`ErrorSerialiser`](https://serenity-js.org/api/core/class/ErrorSerialiser/) * * ```ts * import { RuntimeError } from '@serenity-js/core' * import { ErrorSerialiser } from '@serenity-js/core/lib/io' * * export class CustomError extends RuntimeError { * * static fromJSON(serialised: JSONObject): CustomError { * const error = new CustomError( * serialised.message as string, * ErrorSerialiser.deserialise(serialised.cause as string | undefined), * ); * * error.stack = serialised.stack as string; * * return error; * } * * constructor(message: string, cause?: Error) { * super(CustomError, message, cause); * } * } * * ErrorSerialiser.registerErrorTypes(CustomError) * ``` * * @group Errors */ export declare abstract class RuntimeError extends Error { readonly cause?: Error; /** * @param type - Constructor function used to instantiate a subclass of a RuntimeError * @param message - Human-readable description of the error * @param [cause] - The root cause of this [`RuntimeError`](https://serenity-js.org/api/core/class/RuntimeError/), if any */ protected constructor(type: new (...args: any[]) => RuntimeError, message: string, cause?: Error); /** * Human-readable description of the error */ toString(): string; toJSON(): object; } //# sourceMappingURL=RuntimeError.d.ts.map