在程序的生命周期中,控件从未到达且从未执行过的Java代码块/语句被称为无法访问的块/语句。
通常,只要有一段代码在它之前的返回语句。
在它之前的无限循环。
Java不支持无法访问的代码。如果您有任何此类语句(无法访问),则Java编译器会引发编译时错误。
例1
在以下Java程序中,类UnreachableCodeExample具有名为greet的方法,该方法返回String值。return语句之后有一条print语句。public class UnreachableCodeExample {
public String greet() {
System.out.println("This is a greet method ");
return "Hello";
System.out.println("This is an unreachable code ");
}
public static void main(String args[]) {
new UnreachableCodeExample().greet();
}
}
编译时错误
因为我们有一个return语句,所以在println方法调用之前,在greet方法中它是不可访问的。如果您编译此程序,它将生成以下编译时错误-
输出结果UnreachableCodeExample.java:5: error: unreachable statement
System.out.println("This is an unreachable code ");
^
UnreachableCodeExample.java:6: error: missing return statement
}
^
2 errors
例2
在以下Java程序中,类UnreachableCodeExample具有名为greet的方法,该方法具有无限的while循环,其后是打印语句。public class UnreachableCodeExample {
public void greet() {
System.out.println("This is a greet method ");
while(true){
}
System.out.println("This is an unreachable code ");
}
public static void main(String args[]) {
new UnreachableCodeExample().greet();
}
}
编译时错误
由于我们有一个无限循环,因此在println方法调用之前,在greet方法中它是不可访问的。如果您编译此程序,它将生成以下编译时错误-UnreachableCodeExample.java:6: error: unreachable statement
System.out.println("This is an unreachable code ");
^
1 error