我的一位同事告诉我,在 javascript 中使用大量 try catch 块会影响性能。这种说法是真的吗?如果是,那为什么?
问问题
1008 次
2 回答
2
简短的回答,是的,他是正确的。声明必须在try/catch
幕后处理某些事情才能起作用。例如,它将扩展范围查找链(这在现代环境中可能不是那么大的问题),但它特别需要评估其中的任何代码try-block
,以确定是否抛出任何错误。
无论如何,try/catch
块是使您的代码稳定的绝佳机会。但是,您应该始终将其应用于代码的最小部分,当然,仅在确实需要时(例如,避免您无法解决的特定于浏览器的错误/错误)。把你所有的剧本都放在一个大块try/catch
里,当然是最糟糕的主意。
于 2012-09-14T09:23:45.760 回答
0
是的。在 dev.opera.com上有一篇很好的文章。
这可能是因为 try-catch-blocks 对结果对象有特定的、不寻常的处理,它们需要检查其类型是否为throw
. 然后,执行该catch
块并不像在代码中看起来那么容易。请参阅Ecmascript §12.14:try
声明以供进一步阅读。
尽管如此,try-catch-clauses 是一项强大的功能,应该在适当和有用的地方使用它们。但是,不要将它们放在对性能至关重要的函数中,而应该将它们包装起来,这样它们就不会被太频繁地执行。
于 2012-09-14T09:31:38.470 回答