-1

私は OCA 試験のために勉強していますが、なぜ parseFloat() の最後の行に到達できないのに、go() の最後の行には到達できないのかわかりません。戻り値の型を除けば、大きな違いは見られません。

  public float parseFloat(String s) {
        float f = 0.0F;
        try {
            f = Float.valueOf(s).floatValue();
            return f;
        } catch (NumberFormatException e) {
            f = Float.NaN;
            return f;
        } finally {
            return f;
        }
        System.out.println(""); //unreachable statement   
    }    
    public void go() {
        System.out.println("A");
        try {
            System.out.println(3 / 0);
        } catch (ArithmeticException e) {
            System.out.println("b");
        } finally {
            System.out.println("c");
        }
        System.out.println("d"); //reachable statement
    }
4

1 に答える 1

4

これは、そのステートメントを呼び出す前に常に戻るためです。finallyを使用していても、それは常に呼び出されることを忘れないでくださいreturn

于 2015-09-04T14:59:28.703 に答える