Skip to content
On this page

stratadb / StrataDBError

Abstract Class: StrataDBError

Defined in: src/errors.ts:35

Abstract base class for all StrataDB errors.

Remarks

All StrataDB-specific errors extend this class, providing a consistent interface for error handling throughout the library. Each error has a unique code and category for programmatic error handling and response.

Example

typescript
try {
  await users.insertOne(invalidUser);
} catch (error) {
  if (error instanceof StrataDBError) {
    console.log(`Error: ${error.code} in category: ${error.category}`);

    switch (error.category) {
      case 'validation':
        // Handle validation errors
        break;
      case 'database':
        // Handle database errors
        break;
      case 'query':
        // Handle query errors
        break;
      case 'transaction':
        // Handle transaction errors
        break;
    }
  }
}

Extends

  • Error

Extended by

Constructors

Constructor

ts
new StrataDBError(message): StrataDBError;

Defined in: src/errors.ts:46

Parameters

message

string

Returns

StrataDBError

Overrides

ts
Error.constructor

Properties

category

ts
abstract readonly category: "validation" | "query" | "database" | "transaction";

Defined in: src/errors.ts:40

Error category for grouping related error types


cause?

ts
optional cause: unknown;

Defined in: node_modules/typescript/lib/lib.es2022.error.d.ts:26

The cause of the error.

Inherited from

ts
Error.cause

code

ts
abstract readonly code: string;

Defined in: src/errors.ts:37

Unique error code for programmatic identification


message

ts
message: string;

Defined in: node_modules/typescript/lib/lib.es5.d.ts:1077

Inherited from

ts
Error.message

name

ts
name: string;

Defined in: node_modules/typescript/lib/lib.es5.d.ts:1076

Inherited from

ts
Error.name

stack?

ts
optional stack: string;

Defined in: node_modules/typescript/lib/lib.es5.d.ts:1078

Inherited from

ts
Error.stack

stackTraceLimit

ts
static stackTraceLimit: number;

Defined in: node_modules/@types/node/globals.d.ts:68

The 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.

Inherited from

ts
Error.stackTraceLimit

Methods

captureStackTrace()

Call Signature

ts
static captureStackTrace(targetObject, constructorOpt?): void;

Defined in: node_modules/@types/node/globals.d.ts:52

Creates a .stack property on targetObject, which when accessed returns a string representing the location in the code at which Error.captureStackTrace() was called.

js
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:

js
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();
Parameters
targetObject

object

constructorOpt?

Function

Returns

void

Inherited from
ts
Error.captureStackTrace

Call Signature

ts
static captureStackTrace(targetObject, constructorOpt?): void;

Defined in: node_modules/bun-types/globals.d.ts:1043

Create .stack property on a target object

Parameters
targetObject

object

constructorOpt?

Function

Returns

void

Inherited from
ts
Error.captureStackTrace

isError()

Call Signature

ts
static isError(error): error is Error;

Defined in: node_modules/typescript/lib/lib.esnext.error.d.ts:23

Indicates whether the argument provided is a built-in Error instance or not.

Parameters
error

unknown

Returns

error is Error

Inherited from
ts
Error.isError

Call Signature

ts
static isError(value): value is Error;

Defined in: node_modules/bun-types/globals.d.ts:1038

Check if a value is an instance of Error

Parameters
value

unknown

The value to check

Returns

value is Error

True if the value is an instance of Error, false otherwise

Inherited from
ts
Error.isError

prepareStackTrace()

ts
static prepareStackTrace(err, stackTraces): any;

Defined in: node_modules/@types/node/globals.d.ts:56

Parameters

err

Error

stackTraces

CallSite[]

Returns

any

See

https://v8.dev/docs/stack-trace-api#customizing-stack-traces

Inherited from

ts
Error.prepareStackTrace

Released under the MIT License.