JavaScript:作为参数传递的Try/Catch vs error函数

JavaScript: Try/Catch vs error function passed as a parameter

本文关键字:Catch vs error 函数 Try 参数传递 JavaScript      更新时间:2023-09-26

我想知道在nodeJSJavaScript中,哪种方法更适合错误处理和调试?

具有纯try/catch块:

try
{
  dangerous.function();
}
catch(error);
{
  console.log(error);
}

只需使用一个函数作为参数,如果出现任何错误,就会显示

dangerous.function(function(error)
{
  console.log(error);
});

我之所以提出这个问题,是因为我读到try/sthrow可能会记录太多堆栈跟踪数据,如下所示:http://nodejs.org/api/domain.html#domain_warning_don_t_ignore_errors

这完全取决于您。异常具有提供堆栈跟踪的优点。

请注意,如果dangerous.function异步执行其工作,那么您将需要使用第二种方法,因为最初没有任何异常需要捕获。但这并不意味着你不能使用异常,只是如果你想使用异常,你必须将异常传递给回调,而不是抛出它

它们旨在实现相同的目的,但它们将用于不同的上下文:

  • try/catch只适用于截获同步错误
  • 回调将允许同步和异步错误传输

我强烈建议阅读这篇文章(尽管它最初是为Node.js开发人员编写的,但它对每个JavaScript开发人员都很有价值),这篇文章完全涵盖了这个主题。