diff --git a/doc/api/errors.md b/doc/api/errors.md index a895dd5a5af904..396a5c594fbf12 100644 --- a/doc/api/errors.md +++ b/doc/api/errors.md @@ -232,14 +232,27 @@ The `constructorOpt` argument is useful for hiding implementation details of error generation from the user. For instance: ```js -function MyError() { - Error.captureStackTrace(this, MyError); +function a() { + b(); } -// Without passing MyError to captureStackTrace, the MyError -// frame would show up in the .stack property. By passing -// the constructor, we omit that frame, and retain all frames below it. -new MyError().stack; +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(); ``` ### `Error.stackTraceLimit`