【发布时间】:2015-11-30 19:00:33
【问题描述】:
我正在为 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
}
【问题讨论】:
-
阅读docs.oracle.com/javase/tutorial/java/javaOO/returnvalue.html。从方法返回会停止该方法的执行。在屏幕上打印一些东西不会。有很大的不同。
-
我希望我能参加那场考试,看起来很容易(;
-
@Helenesh 在第二个 sn-p 中根本没有回报。该语句在第一个 sn-p 中是不可访问的,因为在该 print 语句之前有一个 return。在第二个打印语句之前没有返回。
标签: java exception-handling unreachable-statement