更新時間:2022-08-08 12:39:48 來源:動力節點 瀏覽1525次
Java中的異常處理是處理運行時錯誤的有效手段之一,可以保持應用程序的正常流程。Java 異常處理是一種處理運行時錯誤的機制,例如 ClassNotFoundException、IOException、SQLException、RemoteException 等。
異常是在程序執行期間(即在運行時)發生的不希望或意外事件,它會破壞程序指令的正常流程。程序可以捕獲和處理異常。當方法中發生異常時,它會創建一個對象。該對象稱為異常對象。它包含有關異常的信息,例如異常的名稱和描述以及異常發生時程序的狀態。
用戶輸入無效
設備故障
網絡連接丟失
物理限制(磁盤內存不足)
代碼錯誤
打開不可用的文件
錯誤表示Java虛擬機(JVM)內存不足、內存泄漏、堆棧溢出錯誤、庫不兼容、無限遞歸等不可恢復的情況。錯誤通常超出程序員的控制范圍,我們不應該嘗試處理錯誤.
讓我們討論最重要的部分,即錯誤和異常之間的區別,如下所示:
錯誤: 錯誤表示合理的應用程序不應嘗試捕獲的嚴重問題。
異常: 異常表示合理的應用程序可能試圖捕獲的條件。
所有異常和錯誤類型都是Throwable類的子類,后者是層次結構的基類。一個分支由Exception領導。此類用于用戶程序應捕獲的異常情況。NullPointerException 是此類異常的一個示例。Java 運行時系統 ( JVM ) 使用另一個分支Error來指示與運行時環境本身 (JRE) 相關的錯誤。StackOverflowError 就是此類錯誤的一個示例。
Java 定義了與其各種類庫相關的幾種異常類型。Java 還允許用戶定義自己的異常。
異??梢苑譃閮煞N方式:
1.內置異常
檢查異常
未經檢查的異常
2.用戶定義的異常
Java中異常處理的優點如下:
提供完成程序執行
輕松識別程序代碼和錯誤處理代碼
錯誤的傳播
有意義的錯誤報告
識別錯誤類型
1.printStackTrace() - 此方法以異常名稱的格式打印異常信息:異常描述、堆棧痕跡。
//program to print the exception information using printStackTrace() method
import java.io.*;
class GFG {
public static void main (String[] args) {
int a=5;
int b=0;
try{
System.out.println(a/b);
}
catch(ArithmeticException e){
e.printStackTrace();
}
}
}
輸出:
java.lang.ArithmeticException: / 由零
在 GFG.main(File.java:10)
2.toString() - 此方法以異常名稱:異常描述的格式打印異常信息。
//program to print the exception information using toString() method
import java.io.*;
class GFG1 {
public static void main (String[] args) {
int a=5;
int b=0;
try{
System.out.println(a/b);
}
catch(ArithmeticException e){
System.out.println(e.toString());
}
}
}
輸出:
java.lang.ArithmeticException: / 由零
3.getMessage() - 這個方法只打印異常的描述。
//program to print the exception information using getMessage() method
import java.io.*;
class GFG1 {
public static void main (String[] args) {
int a=5;
int b=0;
try{
System.out.println(a/b);
}
catch(ArithmeticException e){
System.out.println(e.getMessage());
}
}
}
輸出:
/ 由零
默認異常處理:只要在方法內部發生異常,該方法就會創建一個稱為異常對象的對象并將其交給運行時系統(JVM)。異常對象包含異常的名稱和描述以及發生異常的程序的當前狀態。創建異常對象并在運行時系統中處理它稱為拋出異常??赡苡幸粋€方法列表,這些方法已被調用以獲取發生異常的方法。這個有序的方法列表稱為Call Stack?,F在將發生以下過??程。
運行時系統搜索調用堆棧以找到包含可以處理發生的異常的代碼塊的方法。該代碼塊稱為異常處理程序。
運行時系統從發生異常的方法開始搜索,并以調用方法的相反順序遍歷調用Java堆棧。
如果它找到合適的處理程序,則將發生的異常傳遞給它。適當的處理程序意味著拋出的異常對象的類型與它可以處理的異常對象的類型相匹配。
如果運行時系統搜索調用堆棧上的所有方法并且找不到合適的處理程序,則運行時系統將異常對象移交給默認異常處理程序,它是運行時系統的一部分。該處理程序以下列格式打印異常信息并異常終止程序。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習