does try/catch affects performance if no exception thrown in try block?
我刚开始编程,想知道如果在try块中没有抛出异常,try/catch是否会影响性能?
不,不是。
因为如果不发生异常,则不会执行catch块,因此它不会影响性能。
所以假设我有这段代码:
1 2 3 4 5 6 7 | try { Integer.parseInt("123"); } catch (NumberFormatException e) { while (true) { System.out.println("Error"); } } |
catch块运行无限循环,因此这会影响性能,但何时会发生这种情况?如果数字不是整数,则会引发异常,因此它可以执行catch块,在这种情况下,它将影响性能。
是的,试着接球会影响你的表现。
有关详细信息,请查看此链接(来自msdn)。
链接是有帮助的,但是它关于异常的内容与您的"是"答案是相反的。
"Finding and designing away exception-heavy code can result in a decent perf win. Bear in mind that this has nothing to do with try/catch blocks: you only incur the cost when the actual exception is thrown. You can use as many try/catch blocks as you want. Using exceptions gratuitously is where you lose performance"
将有一些需要运行的安装代码,例如在Java中,一个尝试块安装到一个特殊的表中(JVM在抛出异常时查看),但这应该是无关紧要的。期望是,当不抛出异常时,Try/Except没有开销。