📜  如何解决 Node.js 中未处理的异常?

📅  最后修改于: 2022-05-13 01:56:53.864000             🧑  作者: Mango

如何解决 Node.js 中未处理的异常?

下面讨论了两种解决 Node.js 中未处理异常的方法:

方法 1:使用 try-catch 块:我们知道 Node.js 是一个基于 JavaScript 运行时构建的平台,用于轻松构建快速且可扩展的网络应用程序。作为 JavaScript 的一部分,我们知道处理异常最突出的方法是我们可以使用try 和 catch块。

例子:

try {
      
    // The synchronous code that
    // we want to catch thrown
    // errors on
    var err = new Error('Hello')
    throw err
} catch (err) {
      
    // Handle the error safely
    console.log(err)
}

注意:但是,请注意不要在异步代码中使用 try-catch,因为不会捕获异步抛出的错误。

try {
    setTimeout(function() {
        var err = new Error('Hello')
        throw err
    }, 1000)
}
catch (err) {
      
    // Example error won't be caught
    // here... crashing our application
    // hence the need for domains
}

方法 2:使用 Process:一个好的做法是,您应该使用Process来处理异常。进程是一个全局对象,它提供有关当前 Node.js 进程的信息。进程是一个监听函数,它总是监听事件。
少数事件是:

  • 断开
  • 出口
  • 信息
  • 多个解决方案
  • 未处理的异常
  • 拒绝处理
  • 未捕获的异常
  • 警告

最有效和最高效的方法是使用Process 。如果您的代码流中发生任何未捕获或未处理的异常,则该异常将在如下所示的代码中被捕获:

例子:

process.on('uncaughtException', function(err) {
  
    // Handle the error safely
    console.log(err)
})

上面的代码将能够处理Node.js中发生的任何类型的未处理异常。