Skip to content

Function: tryCatch()

Call Signature

tryCatch<TryReturn, CatchReturn>(toTry, toCatch): Result<TryReturn | UnwrapOk<CatchReturn>, InferValueAsErr<CatchReturn>>

Defined in: index.ts:569

Executes a function or value safely, catching any errors and returning a Result. Unlike fromThrowable, this executes the operation immediately rather than returning a wrapped function.

Type Parameters

TryReturn

TryReturn

The type returned by the try operation

CatchReturn

CatchReturn

The type returned by the catch handler

Parameters

toTry

() => NonPromise<TryReturn>

The function to execute or value to resolve

toCatch

(error) => NonPromise<CatchReturn>

Value or function to handle caught errors

Returns

Result<TryReturn | UnwrapOk<CatchReturn>, InferValueAsErr<CatchReturn>>

A Result containing either the success value or the catch value

Example

typescript
tryCatch(
  () => 10 / 0,
  (error) => `Parse failed: ${String(error)}`
); // Result<number, `Parse failed: ${string}`>

tryCatch(
  () => { throw new Error("Something went wrong"); },
  "Default error message"
); // Result<never, "Default error message">

tryCatch(
  () => fetch('/api/data').then(r => r.json()),
  (error) => ({ message: "Network error" })
); // Promise<Result<any, { readonly message: "Network error" }>>

Call Signature

tryCatch<TryReturn, CatchReturn>(toTry, toCatch): Result<TryReturn | UnwrapOk<CatchReturn>, InferValueAsErr<CatchReturn>>

Defined in: index.ts:573

Executes a function or value safely, catching any errors and returning a Result. Unlike fromThrowable, this executes the operation immediately rather than returning a wrapped function.

Type Parameters

TryReturn

TryReturn

The type returned by the try operation

CatchReturn

CatchReturn

The type returned by the catch handler

Parameters

toTry

() => NonPromise<TryReturn>

The function to execute or value to resolve

toCatch

NonPromise<CatchReturn>

Value or function to handle caught errors

Returns

Result<TryReturn | UnwrapOk<CatchReturn>, InferValueAsErr<CatchReturn>>

A Result containing either the success value or the catch value

Example

typescript
tryCatch(
  () => 10 / 0,
  (error) => `Parse failed: ${String(error)}`
); // Result<number, `Parse failed: ${string}`>

tryCatch(
  () => { throw new Error("Something went wrong"); },
  "Default error message"
); // Result<never, "Default error message">

tryCatch(
  () => fetch('/api/data').then(r => r.json()),
  (error) => ({ message: "Network error" })
); // Promise<Result<any, { readonly message: "Network error" }>>

Call Signature

tryCatch<TryReturn, CatchReturn>(toTry, toCatch): Promise<Result<Awaited<TryReturn> | UnwrapOk<CatchReturn>, InferValueAsErr<CatchReturn>>>

Defined in: index.ts:577

Executes a function or value safely, catching any errors and returning a Result. Unlike fromThrowable, this executes the operation immediately rather than returning a wrapped function.

Type Parameters

TryReturn

TryReturn extends unknown

The type returned by the try operation

CatchReturn

CatchReturn

The type returned by the catch handler

Parameters

toTry

OrFunction<TryReturn>

The function to execute or value to resolve

toCatch

OrFunction<OrPromise<CatchReturn>, [unknown]>

Value or function to handle caught errors

Returns

Promise<Result<Awaited<TryReturn> | UnwrapOk<CatchReturn>, InferValueAsErr<CatchReturn>>>

A Result containing either the success value or the catch value

Example

typescript
tryCatch(
  () => 10 / 0,
  (error) => `Parse failed: ${String(error)}`
); // Result<number, `Parse failed: ${string}`>

tryCatch(
  () => { throw new Error("Something went wrong"); },
  "Default error message"
); // Result<never, "Default error message">

tryCatch(
  () => fetch('/api/data').then(r => r.json()),
  (error) => ({ message: "Network error" })
); // Promise<Result<any, { readonly message: "Network error" }>>