try-catch块的位置是否会影响性能?

Mr.*_*ite 6 java performance try-catch

try-catch块的位置是否会影响性能?

例1:while-loop 内部的 try-catch块

while (true) {
    try {
        // ... read from a file
    } catch (EOFException e) {
        break;
    }
}
Run Code Online (Sandbox Code Playgroud)

例2:try-catch块环绕 while循环

try {
    while (true) {
        // ... read from a file
    } 
} catch (EOFException e) {
    // :P
}
Run Code Online (Sandbox Code Playgroud)

从逻辑上讲,这两个例子是等价的,但我更喜欢哪个?

小智 2

无论产生什么开销都try-catch可能可以忽略不计,但第一种情况更吸引我注意的是它具有误导性:您捕获了异常,只是为了中止循环。我会选择解决方案 2,因为它符合意图。这样你就可以避免任何开销。

  • 我对此什么也没说。我知道这是一个错误并忽略了它,因为你已经清楚地表达了你的意图。 (2认同)