In Java, We use to print the stack trace with the inbuilt method.
In Nodejs, It provides captureStackTrace
method in the Error object to get call stack information. It creates a .stack
property with information about a target object.
It provides the user-defined function to capture the stack call trace. You can also check other posts on npm command deprecate option is deprecated Syntax:
captureStackTrace(Object[, constructorFunciton])
Object
: It is a target error object which returns the string that contains the line number in the location code with a stack trace. An
constructorFunciton
: Error custom object
Here is an Nodejs captureStackTrace example
const employee = { "id": 1, "name": "john" };
Error.captureStackTrace(employee);
console.log(employee.stack);
Output:
A:\work\nodework>node error.js
john
at Object.<anonymous> (A:\work\nodework\error.js:2:7)
at Module._compile (internal/modules/cjs/loader.js:1068:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1097:10)
at Module.load (internal/modules/cjs/loader.js:933:32)
at Function.Module._load (internal/modules/cjs/loader.js:774:14)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12)
at internal/main/run_main_module.js:17:47
Let’s see another example
Let’s define a function, printed stack
property and returns undefined
function MyError() {
}
console.log(new MyError().stack);
Output:
undefined
Let’s add a function with the captureStackTrace method with an error object
function MyError() {
Error.captureStackTrace(this, MyError);
}
console.log(new MyError().stack);
Output:
Error
at Object.<anonymous> (A:\work\nodework\error.js:8:13)
at Module._compile (internal/modules/cjs/loader.js:1068:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1097:10)
at Module.load (internal/modules/cjs/loader.js:933:32)
at Function.Module._load (internal/modules/cjs/loader.js:774:14)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12)
at internal/main/run_main_module.js:17:47
It helps users to hide the implementation error details