无法访问的语句

时间:2015-09-04 14:57:56

标签: java exception-handling unreachable-statement

我正在攻读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
    }

1 个答案:

答案 0 :(得分:4)

这是因为在调用该语句之前,总是返回。请记住,即使您使用finally,也始终会调用return