---
url: "https://vueda.dev/v3/reference/api/js/utils/errors/RateLimitedError/methods/captureStackTrace.md"
title: "captureStackTrace"
---

# captureStackTrace

## Overview

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();
```

## Signature

`captureStackTrace(targetObject, constructorOpt)`

### Parameters

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| <span id="param-targetObject">targetObject</span> | `object` | yes |  |
| <span id="param-constructorOpt">constructorOpt</span> | `Function` | no |  |

### Returns

`void`

## Source

`node_modules/.pnpm/@types+node@22.19.11/node_modules/@types/node/globals.d.ts:52`
