Java異常是在Java程序運行時發生的不正常情況,一般是指程序出現了錯誤或異常狀況而無法處理或繼續運行的情況。Java異常類提供了一個標準的方法來處理這些情況,它允許程序員編寫代碼來捕獲,並處理異常。本文介紹Java異常類一覽表以及異常捕獲和處理的方法。
一、Java異常類概述
Java中的異常分為兩類:Checked Exception(編譯時異常)和Unchecked Exception(運行時異常)。
1. Checked Exception(編譯時異常)
Checked Exception需要在程序中顯式地處理或聲明拋出異常,否則無法編譯通過。有以下幾個常見的Checked Exception:
public void readFromFile(String filename) throws IOException {
BufferedReader br = null;
FileReader fr = null;
try {
fr = new FileReader(filename);
br = new BufferedReader(fr);
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (br != null)
br.close();
if (fr != null)
fr.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
2. Unchecked Exception(運行時異常)
Unchecked Exception在編寫代碼時不需要顯示捕捉或聲明拋出異常,如數組越界異常、空指針異常等,可以通過編寫良好的代碼來避免這些異常。
public int divide(int a, int b){
return a/b;
}
二、Java異常類繼承關係
在Java中,異常類繼承關係如下圖所示。
三、Java異常處理
Java異常處理包括四個關鍵字:try、catch、finally和throw。
1. try-catch
try-catch語句用於捕獲和處理異常,try塊包含可能會拋出異常的代碼,如果try塊中的語句引發了異常,就會跳轉到catch塊,catch塊會捕捉異常並進行處理。
public int divide(int a, int b){
try {
return a/b;
} catch (ArithmeticException e) {
System.out.println("除數不能為0");
}
return 0;
}
2. finally
finally塊包含一些代碼,這些代碼必須在try塊結束之後執行。無論try塊是否拋出異常,finally塊中的代碼都會被執行。
public int divide(int a, int b){
try {
return a/b;
} catch (ArithmeticException e) {
System.out.println("除數不能為0");
} finally {
System.out.println("finally塊被執行");
}
return 0;
}
3. throw
throw用於在方法中手動拋出一個異常,該異常可以是Java內置的異常類,也可以是自定義的異常類。
public void checkAge(int age) throws AgeException {
if (age < 18) {
throw new AgeException("Age is not valid");
} else {
System.out.println("Age is valid");
}
}
4. try-catch-finally
try-catch-finally塊結合了前三種關鍵字,用於保護可能會拋出異常的代碼並防止資源泄漏。
public void readFromFile(String filename) throws IOException {
BufferedReader br = null;
FileReader fr = null;
try {
fr = new FileReader(filename);
br = new BufferedReader(fr);
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (br != null)
br.close();
if (fr != null)
fr.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
四、小結
Java異常類是Java程序中不可避免的一部分。了解Java異常類的定義、繼承關係和處理方法將有助於開發者快速識別和修復程序中的問題。在實踐過程中,開發者應該合理地捕獲和處理異常,寫出健壯性高、性能優良的Java程序。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/188419.html
微信掃一掃
支付寶掃一掃