Skip to content

UnreachableCodeError

Represents an error that occurs when unreachable code is executed. This error always indicates a bug in the Tevm VM.

Example

import { UnreachableCodeError } from '@tevm/errors'
function assertUnreachable(x) {
throw new UnreachableCodeError(x, 'Unreachable code executed')
}
function getArea(shape) {
switch (shape) {
case 'circle':
return Math.PI * Math.pow(radius, 2)
case 'square':
return side * side
default:
return assertUnreachable(shape)
}
}
try {
getArea('triangle') // This should be unreachable
} catch (error) {
if (error instanceof UnreachableCodeError) {
console.error('Unreachable code executed:', error.message)
console.log('Unreachable value:', error.value)
// This indicates a bug in the Tevm VM
reportBugToTevmRepository(error)
}
}

Extends

Constructors

new UnreachableCodeError()

new UnreachableCodeError(value, message?, args?): UnreachableCodeError

Constructs an UnreachableCodeError.

Parameters

value: any

The value that should be unreachable.

message?: string

Human-readable error message.

args?: UnreachableCodeErrorParameters = {}

Additional parameters for the error.

Returns

UnreachableCodeError

Overrides

InternalError.constructor

Defined in

packages/errors/src/defensive/UnreachableCodeError.js:66

Properties

_tag

_tag: string

Same as name, used internally.

Inherited from

InternalError._tag

Defined in

packages/errors/src/defensive/UnreachableCodeError.js:80


cause

cause: any

Inherited from

InternalError.cause

Defined in

packages/errors/src/ethereum/BaseError.js:114


code

code: number

Inherited from

InternalError.code

Defined in

packages/errors/src/ethereum/BaseError.js:112


details

details: string

Inherited from

InternalError.details

Defined in

packages/errors/src/ethereum/BaseError.js:91


docsPath

docsPath: undefined | string

Path to the documentation for this error.

Inherited from

InternalError.docsPath

Defined in

packages/errors/src/ethereum/BaseError.js:96


message

message: string

Human-readable error message.

Inherited from

InternalError.message

Defined in

node_modules/.pnpm/typescript@5.6.2/node_modules/typescript/lib/lib.es5.d.ts:1077


meta

meta: undefined | object

Optional object containing additional information about the error.

Inherited from

InternalError.meta

Defined in

packages/errors/src/ethereum/InternalErrorError.js:75


metaMessages

metaMessages: undefined | string[]

Additional meta messages for more context.

Inherited from

InternalError.metaMessages

Defined in

packages/errors/src/ethereum/BaseError.js:100


name

name: string

The name of the error, used to discriminate errors.

Inherited from

InternalError.name

Defined in

packages/errors/src/defensive/UnreachableCodeError.js:79


shortMessage

shortMessage: string

Inherited from

InternalError.shortMessage

Defined in

packages/errors/src/ethereum/BaseError.js:104


stack?

optional stack: string

Inherited from

InternalError.stack

Defined in

node_modules/.pnpm/typescript@5.6.2/node_modules/typescript/lib/lib.es5.d.ts:1078


value

value: any

The value that should be unreachable.

Defined in

packages/errors/src/defensive/UnreachableCodeError.js:57


version

version: string

Inherited from

InternalError.version

Defined in

packages/errors/src/ethereum/BaseError.js:108


code

static code: number = -32603

The error code for InternalError.

Inherited from

InternalError.code

Defined in

packages/errors/src/ethereum/InternalErrorError.js:52


prepareStackTrace()?

static optional prepareStackTrace: (err, stackTraces) => any

Optional override for formatting stack traces

Parameters

err: Error

stackTraces: CallSite[]

Returns

any

See

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

Inherited from

InternalError.prepareStackTrace

Defined in

node_modules/.pnpm/@types+node@22.7.3/node_modules/@types/node/globals.d.ts:143


stackTraceLimit

static stackTraceLimit: number

Inherited from

InternalError.stackTraceLimit

Defined in

node_modules/.pnpm/@types+node@22.7.3/node_modules/@types/node/globals.d.ts:145

Methods

walk()

walk(fn?): unknown

Walks through the error chain.

Parameters

fn?: Function

A function to execute on each error in the chain.

Returns

unknown

The first error that matches the function, or the original error.

Inherited from

InternalError.walk

Defined in

packages/errors/src/ethereum/BaseError.js:137


captureStackTrace()

captureStackTrace(targetObject, constructorOpt)

static captureStackTrace(targetObject, constructorOpt?): void

Create .stack property on a target object

Parameters

targetObject: object

constructorOpt?: Function

Returns

void

Inherited from

InternalError.captureStackTrace

Defined in

node_modules/.pnpm/@types+node@22.7.3/node_modules/@types/node/globals.d.ts:136

captureStackTrace(targetObject, constructorOpt)

static captureStackTrace(targetObject, constructorOpt?): void

Create .stack property on a target object

Parameters

targetObject: object

constructorOpt?: Function

Returns

void

Inherited from

InternalError.captureStackTrace

Defined in

node_modules/.pnpm/bun-types@1.1.29/node_modules/bun-types/globals.d.ts:1630

captureStackTrace(targetObject, constructorOpt)

static captureStackTrace(targetObject, constructorOpt?): void

Create .stack property on a target object

Parameters

targetObject: object

constructorOpt?: Function

Returns

void

Inherited from

InternalError.captureStackTrace

Defined in

node_modules/.pnpm/@types+node@20.12.14/node_modules/@types/node/globals.d.ts:21