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