更新時間:2022-04-21 來源:黑馬程序員 瀏覽量:
在程序運行的過程中也會發(fā)生異常情況,例如運行時內存溢出、磁盤空間不足、網絡中斷等。針對此類狀況,Java中提供了異常處理機制,以異常類的形式對這些不正常情況進行封裝,通過異常處理機制對程序代碼發(fā)生的各種問題進行有針對性地處理。接下來通過一個案例來了解一下什么是異常,如文件3-41所示。
文件3-41Example17.java
package com.itheima.example17; public class Example17 { public static void main(String[] args) { int res = calculate(5, 0); // 調用calculate()方法 System.out.println(res); } // 下面的方法實現了兩個整數相除 public static int calculate(int a, int b) { int res = a / b; // 定義一個變量res記錄兩個數相除的結果 return res; // 將結果返回 } }運行結果如圖3-21所示。
圖3-21運行結果
從圖3-21的運行結果可以看出,程序出現了算術異常(ArithmeticException),這個異常是由于在第4行代碼調用divide()方法時傳入了參數0,而在calculate()方法中,運算時出現了被0除的情況。程序出現異常后導致程序立即結束,無法繼續(xù)向下執(zhí)行。
在上一小節(jié)中產生的ArithmeticException異常只是Java異常體系中的一種,在Java中還提供了大量的異常類,這些異常類都是java.lang.Throwable類的子類。
接下來通過一張圖來學習Throwable類的繼承體系,如圖3-22所示。
圖3-22Throwable體系架構圖
通過圖3-22可以看出,Throwable有兩個直接子類Error和Exception,其中Error表示程序代碼中出現的錯誤,Exception表示程序代碼中出現的異常。他們的區(qū)別在于,錯誤是指僅靠程序本身是不能恢復執(zhí)行的,而異常是指通過程序本身可以處理的錯誤。