我目前正在使用try/catch to handle JSON.parse errors。但是我刚刚在阅读了一些best practices之后发现,在nodejs上使用try / catch有一些performance overhead。是否已经修复了性能开销,是否有另一种方法可以避免JSON.parse上的错误而不使用try / catch?
答案 0 :(得分:1)
没有自己的解析器,没有简单的方法可以避免try-catch。
尝试此性能测试: http://jsperf.com/try-catch-performance-overhead
使用Chrome进行测试,因为NodeJS只是V8。在我的情况下,性能损失为41%。但是,除非您要每秒读取数千个JSON,否则我建议您使用标准的try-catch并使代码可读。
请注意,对于Firefox,3次测试之间几乎没有差异。
答案 1 :(得分:0)
最佳做法是在同步事件中使用try / catch:
try
{
dangerous.function();
}
catch(error);
{
console.log(error);
}
和异步触发事件的回调函数:
dangerous.function(function(error)
{
console.log(error);
});