在 Node.js 中抛出错误
本篇文章将介绍如何在 Node.js 中抛出错误。
在 Node.js 中抛出错误
错误是不允许系统正常运行的语句。
Node.Js 中的错误通过异常处理,异常是在 throw 关键字的帮助下创建的。 这可以帮助用户创建自定义异常。
一旦执行了这行 JavaScript 代码,程序的正常流程就会停止,控制权将掌握在最近的异常处理程序中。 如果调用函数之间不存在 catch 块,则程序终止。
语法:
throw expression;
该值通常可以是客户端代码中的任何 JavaScript 值,包括数字、对象或字符串。 但是在 Node.js 中,我们不会抛出字符串; 我们只抛出错误对象。
错误 Error 对象
Error 对象是一个对象,它是错误对象的实例或扩展了主错误模块中提供的错误类。 发生运行时错误时会生成错误对象。
我们还可以使用错误对象作为自定义异常的基础对象。
throw new Error('You reached the end!');
class MyCustomError extends Error {
// ...
}
throw new MyCustomError();
处理异常
异常处理程序是 try...catch
语句。 try 块中包含的代码行中抛出的任何异常都在适当的 catch 块中处理。
如果在我们的程序运行时抛出未捕获的异常,程序将失败。
try {
/* Your Regular Code */
} catch (e) {
/* Catch your exception here */
}
e 是本例中的异常值。 我们可以添加多个可以检测不同类型错误的处理程序。
然后,我们可以根据异常类型修改您的程序。 要修复程序失败问题,请等待进程对象上的 uncaughtException
事件。
process.on('uncaughtException', err => {
console.error('An uncaught error is caught here', err);
process.exit(1);
});
我们不需要为此导入主流程模块,因为它将自动包含在内。
使用 promises 处理异常
Promises 可以让您将独一无二的操作链接在一起,并在最后处理错误。 Promise 链在处理错误方面非常棒。
当 promise 被拒绝时,控件会跳转到最近的拒绝处理程序。 这在实践中非常方便。
如大家所见,.catch
不一定是即时的。 它可能看起来在一个或许多 .then
之后。
fooFunction()
.then(barFunction)
.then(fooBarFunction)
.catch(err => console.error(err));
使用 async/await 处理异常
使用 async/await
,你需要使用 try...catch
来捕获错误。
async function fooFunction() {
try {
await fooBarFunction();
} catch (err) {
console.error(err.message);
}
}
让我们通过下面的简单示例来理解它:
fooBarFunction = async() => {
throw new Error("Hello jiyii.com Users!")
}
async function fooFunction() {
try {
console.log("Before Error")
await fooBarFunction();
} catch (err) {
console.error(err.message);
}
}
fooFunction()
在上面的示例中,我们调用了 fooFunction()
,它首先打印消息,然后在内部调用 fooBarFunction()
。 在 fooBarFunction()
中,我们只是抛出一个由 fooFunction()
捕获的错误。
尝试在支持 Node.js 的 Replit 中运行上述代码片段。 它将显示以下结果:
输出结果如下:
Before Error
Hello jiyii.com Users!
相关文章
Node.js 中的 HTTP 发送 POST 请求
发布时间:2023/03/27 浏览次数:200 分类:Node.js
-
在本文中,我们将学习如何使用 Node.js 使用第三方包发出发送 post 请求。