【发布时间】:2013-05-03 08:07:51
【问题描述】:
我们知道捕获异常的成本很高。但是,即使从未抛出异常,在 Java 中使用 try-catch 块是否也很昂贵?
我找到了 Stack Overflow 问题/答案Why are try blocks expensive?,但它适用于 .NET。
【问题讨论】:
-
这个问题真的没有意义。 Try..catch 有一个非常具体的目的。如果你需要它,你需要它。无论如何,没有捕获的尝试有什么意义?
-
try { /* do stuff */ } finally { /* make sure to release resources */ }合法且有用 -
必须权衡成本和收益。它并不孤单。无论如何,昂贵是相对的,在你知道自己做不到之前,使用最明显的方法而不是不做某事是有意义的,因为它可能会在一小时内为你节省一两毫秒程序执行。
-
我希望这不会导致“让我们重新发明错误代码”类型的情况...
-
@SAFX:使用 Java7,您甚至可以使用
try-with-resources摆脱finally块
标签: java performance try-catch