Java中的異常分為兩種,一種是檢查異常(Checked Exception),另一種是非檢查異常(Unchecked Exception)。它們的主要區別在于編譯器的處理方式。
檢查異常是指在編譯時就會被檢查出來的異常,即編譯器要求在代碼中必須進行異常處理或者聲明異常的拋出。如果不進行異常處理或者聲明異常的拋出,程序將無法通過編譯。常見的檢查異常有IOException、ClassNotFoundException等。
try { FileReader fileReader = new FileReader("file.txt"); char[] buffer = new char[1024]; fileReader.read(buffer); } catch (IOException e) { e.printStackTrace(); }
非檢查異常是指在運行時才被檢查出來的異常,編譯器不要求進行異常處理或者聲明異常的拋出。如果發生非檢查異常,程序會直接退出或者拋出一個未處理的異常。常見的非檢查異常有NullPointerException、ArrayIndexOutOfBoundsException等。
int a = 0; int b = 1 / a; System.out.println(b);
對于檢查異常,編譯器會強制進行異常處理或者聲明異常的拋出,以保證程序的健壯性和可維護性。而對于非檢查異常,編譯器不會強制進行異常處理或者聲明異常的拋出,因此需要程序員自己去處理異常。在實際開發中,我們應該在程序中謹慎使用非檢查異常,以防止出現不可預知的錯誤。