什么是 Java 中不可到达的代码块?


Java 中永远不会到达的代码块或语句,而且永远不会在程序的生命周期内执行,则称为不可达的代码块或语句。

一般来说,它发生在代码片段前有

  • 一个 return 语句。
  • 一个无限循环。

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();
   }
}

编译时错误

由于在 greet 方法中 println 方法调用之前我们有一个 return 语句,因此它是不可达的。如果您编译这个程序,它会生成以下编译时错误 −

输出

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 循环,后跟一个 print 语句。

 实时演示

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();
   }
}

编译时错误

由于在 greet 方法中 println 方法调用之前我们有一个无限循环,因此它是不可达的。如果您编译这个程序,它会生成以下编译时错误 −

UnreachableCodeExample.java:6: error: unreachable statement
System.out.println("This is an unreachable code ");
^
1 error

更新于: 2020-06-29

410 次浏览

开启你的职业生涯

通过完成课程获得认证

开始学习
广告
© . All rights reserved.