JavaScript:Try / Catch vs错误函数作为parameter passing

我想知道哪种方法更适合nodeJS的 JavaScripterror handling和debugging?

有一个纯粹的try / catch块:

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

要么

只是使用一个函数作为参数,如果发生任何错误将会显示

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

我提出这个问题,因为我读了try / throw有可能logging太多的堆栈跟踪数据写在这里: http : //nodejs.org/api/domain.html#domain_warning_don_t_ignore_errors

       

网上收集的解决方案 "JavaScript:Try / Catch vs错误函数作为parameter passing"

他们旨在实现相同的目的,但是要在不同的环境中使用:

  • try / catch将只能用于拦截同步错误
  • callback将允许同步和asynchronous错误传输

我强烈build议阅读这篇文章 (尽pipe它首先针对的是Node.js开发人员,对于每个JavaScript开发人员来说都是有价值的),它们完全涵盖了这个主题。

这完全取决于你。 exception具有提供堆栈跟踪的优点。

请注意,如果dangerous.function asynchronous执行其工作,则需要使用第二种方法,因为最初没有任何exception。 但是这并不意味着你不能使用exception,只是如果你想使用exception,你必须将exception传递给callback函数而不是抛出exception。 (或者不要使用例外,这也完全取决于你。)