Node.js 新的 Error() 方法
对于生成和处理错误,Node.js 支持在运行应用程序期间发生的许多机制,并且它是一个内置应用程序,因此我们不导入任何库。 Node.js 引发的所有系统错误都继承自 JavaScript 的 < Error > 类,并提供该类中可用的最少属性。
新的 Error()方法是 Node 模块的内置应用程序编程接口,其中创建了一个新的 Error 对象,并将error.message属性设置为提供的文本消息。通过调用message.toString() ,如果对象作为消息传递,则会生成文本消息。另一个属性error.stack表示代码中调用new Error()的点,该属性的堆栈跟踪依赖于V8的堆栈跟踪 API。
句法:
new Error(message)
参数:此函数接受如上所述和如下所述的单个参数:
- message < 字符串 > :它接受抛出错误时在控制台中显示的消息。
返回值<错误>:它返回作为参数传递的消息值中定义的特定错误。
下面的例子说明了 Node.js 中新的 Error(message)方法的使用。
示例 1:文件名:index.js
// Node.js program to demonstrate the
// the new Error() method
// Creating new Error along with
// passing an error message
const error = new Error(
'Error Message: Hey geek, Error is working all fine..');
// Printing error message
console.log(error.message);
// Printing error stack
console.log(error.stack);
// Printing the error in console
console.log(error);
使用以下命令运行index.js文件:
node index.js
输出:
>> Error Message: Hey geek, Error is working all fine..
>> Error: Error Message: Hey geek, Error is working all fine..
at Object.
>> Error: Error Message: Hey geek, Error is working all fine..
at Object.
示例 2:文件名:index.js
// Node.js program to demonstrate the
// the new Error() method
// Creating new object
const newObjectError = {};
// Creating Errors along with
// passing error message
const error = new Error(
'Error Message: Hey Geek, Error is working fine...');
const error1 = new Error();
const error2 = new Error();
// Printing the stck trace limit
console.log(">> ", Error.stackTraceLimit);
// Printing error message
console.log(">> ", error.message);
// Printing the error in console
// console.log(error1);
// Another way to create error regarding any object
Error.captureStackTrace(newObjectError);
// Inspecting the error
console.log(">> ", require('util').inspect(error1));
if (error1.stack == newObjectError.stack) {
console.log(">> ", "Different Errors can be compared");
} else {
console.log(">> ", "Errors can't be compared");
}
// Comparing two equal Errors
if (error1.stack === error2.stack) {
console.log(">> ", "Equal Errors can be compared");
} else {
console.log(">> ", "Errors can't be compared");
}
使用以下命令运行index.js文件:
node index.js
输出:
>> 10
>> Error Message: Hey Geek, Error is working fine…
>> Error
at Object.
>> Errors can’t be compared
>> Errors can’t be compared
参考: https://nodejs.org/api/errors.html#errors_new_error_message