java中什么是不可访问的块?

在程序的生命周期中,控件从未到达且从未执行过的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