try catch 最終的に Java の質問を受けました。コードは次のようになります。
package com.test;
public class TestExamples {
public int testFinally(int inputNum) {
int returnNumber = inputNum;
try {
returnNumber++;
return returnNumber;
} finally {
returnNumber++;
}
}
public StringBuilder testFinallyString() {
StringBuilder builder = new StringBuilder();
try {
builder.append("cool");
return builder.append("try");
} finally {
builder.append("finally");
}
}
public static void main(String[] args) {
TestExamples testExamples = new TestExamples();
System.out.println("The result of testFinally is " + testExamples.testFinally(5));
System.out.println("The test of testFinallyString is " + testExamples.testFinallyString());
}
}
結果:
testFinally の結果は 6 testFinallyString
のテストは cooltryfinally です
finally が毎回実行される場合、なぜ testFinally は 6 なのですか? 最終的にコードブロックが返された数値をインクリメントしないことに少し戸惑っています。Pls は、誰かが根本的な理由である可能性があるものにもっと光を当てることができます.