迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Node.js >

在 Node.js 中抛出错误

作者:迹忆客 最近更新:2023/03/26 浏览次数:

本篇文章将介绍如何在 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!

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 Node.js 中编码 URL

发布时间:2023/03/27 浏览次数:201 分类:Node.js

在这篇简短的文章中,我们将学习如何在 Node.js 中进行 URL 编码。

在 Node.js 中编码 Base64

发布时间:2023/03/27 浏览次数:155 分类:Node.js

在本文中,我们将学习如何在 Node.js 中将字符串或文本转换为 base64。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便