什麼是 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 次瀏覽

開啟你的職業生涯

透過完成課程獲得認證

開始學習
廣告