Java 中的檢查異常與未檢查異常


檢查異常

檢查異常是在編譯時發生的異常,也稱為編譯時異常。在編譯時不能簡單地忽略這些異常,程式設計師應該注意(處理)這些異常。

例如,如果您在程式中使用 **FileReader** 類從檔案讀取資料,如果其建構函式中指定的檔案不存在,則會發生 *FileNotFoundException*,編譯器會提示程式設計師處理該異常。

示例

線上演示

import java.io.File;
import java.io.FileReader;

public class FilenotFound_Demo {

   public static void main(String args[]) {      
      File file = new File("E://file.txt");
      FileReader fr = new FileReader(file);    
   }
}

如果您嘗試編譯上述程式,您將得到以下異常。

輸出

C:\>javac FilenotFound_Demo.java
FilenotFound_Demo.java:8: error: unreported exception FileNotFoundException; must be caught or declared to be thrown
   FileReader fr = new FileReader(file);                      
      ^
1 error

注意 - 由於 FileReader 類的 **read()** 和 **close()** 方法丟擲 IOException,您可以觀察到編譯器通知處理 IOException 以及 FileNotFoundException。

未檢查異常

未檢查異常是在執行時發生的異常。這些也稱為 **執行時異常**。這些包括程式設計錯誤,例如邏輯錯誤或 API 的不正確使用。執行時異常在編譯時被忽略。

例如,如果您在程式中聲明瞭一個大小為 5 的陣列,並嘗試呼叫陣列的第 6 個元素,則會發生 *ArrayIndexOutOfBoundsException* 異常。

示例

線上演示

public class Unchecked_Demo {

   public static void main(String args[]) {
      int num[] = {1, 2, 3, 4};
      System.out.println(num[5]);
   }
}

如果您編譯並執行上述程式,您將得到以下異常。

輸出

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5
   at Exceptions.Unchecked_Demo.main(Unchecked_Demo.java:8)

更新於: 2020年6月18日

8K+ 次瀏覽

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.