Java 異常處理上篇: Throwable 詳解
來源:Lorin 洛林
前言
•
Java
異常處理是編寫穩健、可靠程式的關鍵組成部分。在Java
中,異常是一種程式執行時可能發生的錯誤或異常情況的表示。異常處理的核心是Throwable
類及其子類,它們為我們提供了處理程式執行中出現的問題的機制。本文將深入探討Throwable
類,探索其層次結構、常見的子類以及異常處理的常用關鍵字。
Throwable 類
• 在
Java
中,Throwable
是所有錯誤和異常的父類。它派生出兩個主要的子類:Error
和Exception
。
Error
•
Error
類表示嚴重的錯誤,通常是虛擬機器發生無法恢復的錯誤。程式設計師通常不需要直接捕獲或處理Error
,因為這類錯誤通常意味著系統出現了不可逆的問題。例如,OutOfMemoryError
表示記憶體不足,StackOverflowError
表示堆疊溢位等。
Exception
•
Exception
類是所有異常的父類。它分為兩種:受檢異常(Checked Exception)和非受檢異常(Unchecked Exception)
。
受檢異常(Checked Exception)
• 受檢異常是在編譯時強制處理的異常,程式必須在程式碼中顯式地處理或者透過
throws
關鍵字宣告方法可能丟擲的受檢異常。典型的受檢異常包括IOException、SQLException
等,它們表示程式在執行時可能遇到的外部因素導致的問題。
// try-catch 顯示處理
try {
// 有可能丟擲 IOException 的程式碼
} catch (IOException e) {
// 處理 IOException
} finally {
// 無論是否發生異常,都會執行的程式碼
}
// throws 宣告可能丟擲的異常
private static void extracted() throws IOException {
throw new IOException();
}
非受檢異常(Unchecked Exception)
• 非受檢異常是在執行時可能丟擲的異常,也稱為
執行時異常(Runtime Exception)
。它們通常是由程式邏輯錯誤引起的,無法在編譯時預測。典型的非受檢異常包括NullPointerException、ArrayIndexOutOfBoundsException
等。
int[] array = {1, 2, 3};
int value = array[5]; // 丟擲 ArrayIndexOutOfBoundsException
異常處理關鍵字
• 在
Java
中,異常處理關鍵字包括try、catch、finally 和 throw
。
try-catch
•
try
塊用於包含可能丟擲異常的程式碼,而catch
塊用於捕獲並處理這些異常。一個try
塊可以包含多個catch
塊,按照它們在程式碼中的順序依次匹配異常。
try {
// 可能丟擲異常的程式碼
} catch (ExceptionType1 e1) {
// 處理 ExceptionType1 異常
} catch (ExceptionType2 e2) {
// 處理 ExceptionType2 異常
} finally {
// 無論是否發生異常,都會執行的程式碼
}
finally
•
finally
塊用於包含無論是否發生異常都需要執行的程式碼。通常finally
用於釋放資源,例如關閉檔案或資料庫連線。
try {
// 可能丟擲異常的程式碼
} catch (Exception e) {
// 處理異常
} finally {
// 無論是否發生異常,都會執行的程式碼
// 通常用於釋放資源
}
throw
•
throw
關鍵字用於手動丟擲異常,以便在發生特定條件時觸發異常。它在方法體內部使用,將一個Throwable
物件丟擲到呼叫者。
void checkAge(int age) {
if (age < 0) {
throw new IllegalArgumentException("Age cannot be negative");
}
}
總結
•
Java
異常處理是構建健壯程式的關鍵組成部分。Throwable
類及其子類為我們提供了處理程式執行中出現的問題的框架。透過合理使用try、catch、finally
和throw
,我們能夠更好地控制程式的流程,增強程式的可維護性和穩定性。
來自 “ ITPUB部落格 ” ,連結:https://blog.itpub.net/70024923/viewspace-3006003/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Java基礎 ---Throwable異常類Java
- 詳解C#異常處理C#
- Reactor詳解之:異常處理React
- python異常處理詳解Python
- MySQL定義異常和異常處理詳解MySql
- JAVA 異常處理Java
- JAVA異常處理Java
- Java 異常處理Java
- C++ 異常處理機制詳解:輕鬆掌握異常處理技巧C++
- JAVA_異常處理Java
- Java--異常處理Java
- Java 異常處理六Java
- Java 異常表與異常處理原理Java
- Python學習之 異常處理詳解Python
- java異常處理筆記Java筆記
- Java異常處理機制Java
- Java異常處理(非常全面)Java
- 重學Java - 異常處理Java
- 【Java基礎】--異常處理Java
- 解讀Rails – 處理異常AI
- 異常篇——異常處理
- Java進階02 異常處理Java
- Java之異常處理try{}catch(){}Java
- java異常的處理機制Java
- JAVA學習之異常處理Java
- Java 異常處理:使用和思考Java
- Java 傳統異常處理(二)Java
- Java 的異常處理機制Java
- Hprose-java之異常處理ROSJava
- Java異常處理設計(一)Java
- Java異常處理設計(二)Java
- Java異常處理設計(三)Java
- Java異常處理和設計Java
- 突破Java異常處理規則Java
- JAVA異常處理原則和log4j輸出詳細異常分析Java
- 異常處理
- Laravel核心解讀–異常處理Laravel
- Java異常處理12條軍規Java