这样编译:
class Ex1 { public int show() { try { int a=10/10; return 10; } catch(ArithmeticException e) { System.out.println(e); } finally { System.out.println("Finally"); } System.out.println("hello"); return 20; } }
另一方面,这不是:
class Ex15 { public int show() { try { int a=10/0; return 10; } catch(ArithmeticException e) { System.out.println(e); } finally { System.out.println("Finally"); return 40; } System.out.println("hello"); return 20; } }
并给出不可达的语句System.out.println(“ hello”); 错误。为什么会这样呢?
最后有一个返回,因此您可能会遇到无法到达的代码块错误。
finally { System.out.println("Finally"); return 40; } System.out.println("hello"); // unreachable code return 20;
这实际上是Java中的编译时错误。参见第14.20节。
如果由于语句无法访问而无法执行该语句,则是编译时错误。