Java 中的異常處理
當你執行Java程式碼或程式時,它要麼編譯並執行,要麼拋出錯誤。當程式碼拋出異常時,它是錯誤或異常的結果。
錯誤更嚴重。它發生在程式碼範圍之外,但在應用程式運行的環境內。該程式預計不會捕獲並處理錯誤。
一些錯誤範例是
- 記憶體不足錯誤
- 虛擬機器錯誤
- StackOverFlowError
異常發生在程式碼範圍內。它也稱為執行錯誤,這意味著它在程式碼執行期間發生。程式設計師應該捕獲並處理程式中的異常。
這篇文章將更專注於異常和運行時錯誤。您將了解有關異常以及如何處理 Java 程式中的異常錯誤的所有資訊。
Java 中的執行錯誤型別
Java中存在三種類型的執行錯誤。這是每個人的細分
。編譯時錯誤
這種類型的錯誤稱為編譯錯誤或檢查錯誤。 Java 程式在編譯階段會拋出此程式碼。
換句話說,這個錯誤是在Javac程式碼編譯為字節碼時發生的。編譯時錯誤通常是由程式碼語法錯誤引起的。
例如,當程式設計師未能在語句末尾加上分號或未能在列印之前初始化變數時。
public class JavaExceptionCodes { public static void main (String []args){ int y = 10 //no semicolon System.out.println(y); } }
。運行時錯誤
運行時錯誤也稱為異常錯誤或未經檢查的錯誤。它在程式執行時發生。程式碼可以編譯,但在運行時會拋出錯誤。
運行時錯誤可以進一步分為內建異常和使用者定義異常。內建異常的範例包括:
- ArrayIndexOutOfBoundsException
- 算術異常
- FileNotFoundException
- 空指標異常
例如,如果使用者輸入 int 而不是字串,或插入大於陣列大小的值。
public class JavaExceptionCodes { public static void main (String []args) { int nombas[] = {1, 2, 3, 4, 5}; System.out.println(nombas[6]); } } //ArrayIndexOutOfBoundsException
。邏輯錯誤
也稱為語意錯誤,如果程式的邏輯輸出有錯誤,就會發生這種錯誤。例如,3 + 3 顯示輸出 7,或當您登入帳戶並登陸另一個個人資料時。
編譯時錯誤是最容易捕捉的,因為你的 IDE 總是會向程式設計師指出這個錯誤。大多數時候邏輯錯誤是最難看到的錯誤,因為程式碼不會拋出編譯時或執行時錯誤。
異常處理的概念
異常處理用於捕獲程式中的錯誤並維持程式執行的正常流程。通常,一旦程式拋出錯誤,程式碼就會停止執行。
提前捕獲並處理錯誤將使程式能夠跳過有錯誤的程式碼區塊並繼續執行程式的其餘部分。
異常處理方法:
Try – Catch – Final – Throw – Throws 是 Java 中異常處理的方法清單。讓我們透過範例詳細分析它們:
。嘗試
Try 用來括起可能引發異常的一行或幾行程式碼。還有一個嵌套的 try,它是帶有內部 try 區塊的 try。它們服務於相同的目的。
文法
try{ }
。抓住
catch 是用來擷取 try 區塊中拋出的錯誤的程式碼區塊。
文法
try{ } catch (Exception e){ }
多個 catch 區塊
public class JavaExceptionCodes { public static void main (String []args) { int x = 10; int y = 0; int z ; int nombas [] = {5, 6, 7, 8, 9}; try { System.out.println(z = x / y); System.out.println(nombas[6]); } catch (ArithmeticException e){ System.out.println("Can't divide by 0. Choose another number" + e); } catch(ArrayIndexOutOfBoundsException e){ System.out.println("Array Out Of Bound" + e); } System.out.println("End"); } }
。最後
最後是一個可選的程式碼區塊,通常放置在 try 和 catch 程式碼區塊之後。它用於執行重要的程式碼。無論程式是否拋出錯誤,finally 區塊都會被執行。
文法
try{ } catch (Exception e){ } finally{ }
。丟
Throw 是一個關鍵字,用於在方法或程式碼區塊內引發異常。
文法
public class JavaExceptionCodes { public static void main (String []args) { try { throw new ArithmeticException("Try Run"); } catch (ArithmeticException e){ System.out.println("Catch Exception Error"); } } }
。投擲
與 throw 關鍵字不同, throws 關鍵字不用於引發例外。但是,它指定該方法可能存在異常。 Throws 用於方法簽名中,而不是方法內部。
處理異常的最佳實踐
一個 try 區塊可以有多個語句(程式碼行)。最好建立多個 catch 區塊來捕獲每個語句中的錯誤。
如果您使用多個 catch 區塊,請務必指定異常類型。
如果一個try區塊中有多個語句,並且你不知道出錯的語句,可以在其他異常的末尾創建一個最終的一般異常來捕獲未知錯誤。
始終將通用異常捕獲塊放置在其他自訂異常捕獲塊的末尾。
以上是Java 中的異常處理的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

公司安全軟件導致部分應用無法正常運行的排查與解決方法許多公司為了保障內部網絡安全,會部署安全軟件。 ...

系統對接中的字段映射處理在進行系統對接時,常常會遇到一個棘手的問題:如何將A系統的接口字段有效地映�...

在使用MyBatis-Plus或其他ORM框架進行數據庫操作時,經常需要根據實體類的屬性名構造查詢條件。如果每次都手動...

將姓名轉換為數字以實現排序的解決方案在許多應用場景中,用戶可能需要在群組中進行排序,尤其是在一個用...

在使用IntelliJIDEAUltimate版本啟動Spring...

Java對象與數組的轉換:深入探討強制類型轉換的風險與正確方法很多Java初學者會遇到將一個對象轉換成數組的�...

電商平台SKU和SPU表設計詳解本文將探討電商平台中SKU和SPU的數據庫設計問題,特別是如何處理用戶自定義銷售屬...

在使用TKMyBatis進行數據庫查詢時,如何優雅地獲取實體類變量名以構建查詢條件,是一個常見的難題。本文將針...
