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
他们旨在实现相同的目的,但是要在不同的环境中使用:
- try / catch将只能用于拦截同步错误
- callback将允许同步和asynchronous错误传输
我强烈build议阅读这篇文章 (尽pipe它首先针对的是Node.js开发人员,对于每个JavaScript开发人员来说都是有价值的),它们完全涵盖了这个主题。
这完全取决于你。 exception具有提供堆栈跟踪的优点。
请注意,如果dangerous.function
asynchronous执行其工作,则需要使用第二种方法,因为最初没有任何exception。 但是这并不意味着你不能使用exception,只是如果你想使用exception,你必须将exception传递给callback函数而不是抛出exception。 (或者不要使用例外,这也完全取决于你。)