Java作為一種面向對象的編程語言,異常處理是其中重要的一部分。在Java中,異常簡單來說就是程序在運行時發(fā)生了錯誤或出現(xiàn)了異常情況,這個錯誤或異常情況我們也稱之為"拋出"了一個異常。Java異常處理機制是Java語言特色之一,也是Java編程中必須學會的一個內容。
Java的異常可分為兩類,一類是Checked Exception(檢查性異常),另一類是Unchecked Exception(運行時異常)。
public class CheckedDemo {
public static void main(String[] args) {
try {
FileReader file = new FileReader("text.txt");
} catch (FileNotFoundException e) {
System.out.println("File not found.");
}
}
}
這里的FileNotFoundException就是一種Checked Exception,即在編譯期已經(jīng)確定的異常,如果不處理這種異常,程序將無法編譯通過。
而運行時異常則是一些可能在程序運行過程中出現(xiàn)的異常情況,比如空指針異常(NullPointerException)或數(shù)組越界異常(ArrayIndexOutOfBoundsException)等等:
public class UncheckedDemo {
public static void main(String[] args) {
int arr[] = {1, 2, 3, 4};
System.out.println(arr[4]);
}
}
這里的ArrayIndexOutOfBoundsException就是一種Unchecked Exception。
處理異常的機制主要有兩種,一種是使用try-catch語句塊來捕獲異常,另一種是使用throws關鍵字將異常拋出去:
public class HandleDemo {
public static void main(String[] args) {
int arr[] = {1, 2, 3, 4};
try {
System.out.println(arr[4]);
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println("Array index out of bounds.");
}
}
}
在上面的代碼中,我們使用了try-catch語句塊來捕獲了異常,當出現(xiàn)數(shù)組越界異常的時候,程序將會拋出"Array index out of bounds."信息。
而throws關鍵字則是用來把異常拋給上一級,由調用者來處理異常:
public class ThrowsDemo {
public static void main(String[] args) throws Exception {
int i = 10 / 0;
System.out.println("Result: " + i);
}
}
在上面的代碼中,我們故意制造了一個運行時異常,即除以0的異常,在這里我們沒有使用try-catch語句塊捕獲異常,而是使用throws關鍵字拋出這個異常給上一級。而上一級就是這個main方法的調用者,它將會在調用的時候得到這個異常。
總之,在Java中,異常處理是每個Java程序員必須要學習、掌握的基礎知識之一。不同類型的異常需要不同的處理方式,使用try-catch和throws關鍵字等控制語句可以有效的控制異常的發(fā)生及異常信息的輸出,從而保證程序的穩(wěn)定性和可靠性。