教育行業(yè)A股IPO第一股(股票代碼 003032)

全國(guó)咨詢/投訴熱線:400-618-4000

Java培訓(xùn):編譯時(shí)異常與運(yùn)行時(shí)異常

更新時(shí)間:2022年07月07日15時(shí)11分 來源:傳智教育 瀏覽次數(shù):

好口碑IT培訓(xùn)

  在實(shí)際開發(fā)過程中,經(jīng)常會(huì)在程序編譯時(shí)產(chǎn)生一些異常,必須要對(duì)這些異常進(jìn)行處理,這種異常稱為編譯時(shí)異常,也稱為checked異常。另外,還有一種異常是在程序運(yùn)行時(shí)產(chǎn)生的,這種異常即使不編寫異常處理代碼,依然可以通過編譯,因此稱為運(yùn)行時(shí)異常,也稱為unchecked異常。下面分別對(duì)這兩種異常進(jìn)行詳細(xì)講解。

  1.編譯時(shí)異常

  在Exception類中,除了RuntimeException類及其子類外,Exception的其他子類都是編譯時(shí)異常。編譯時(shí)異常的特點(diǎn)是Java編譯器會(huì)對(duì)異常進(jìn)行檢查,如果出現(xiàn)異常就必須對(duì)異常進(jìn)行處理,否則程序無法通過編譯。

  有兩種方式處理編譯時(shí)期的異常,具體如下。

  (1)使用try...catch語(yǔ)句對(duì)異常進(jìn)行捕獲處理。

  (2)使用throws關(guān)鍵字聲明拋出異常,調(diào)用者對(duì)異常進(jìn)行處理。

  2.運(yùn)行時(shí)異常

  RuntimeException類及其子類都是運(yùn)行時(shí)異常。運(yùn)行時(shí)異常的特點(diǎn)是Java編譯器不會(huì)對(duì)異常進(jìn)行檢查。也就是說,當(dāng)程序中出現(xiàn)這類異常的時(shí)候,即使沒有使用try...catch語(yǔ)句捕獲或使用throws關(guān)鍵字聲明拋出,程序也能編譯通過。運(yùn)行時(shí)異常一般是由程序中的邏輯錯(cuò)誤引起的,在程序運(yùn)行時(shí)無法恢復(fù)。例如,通過數(shù)組的角標(biāo)訪問數(shù)組有的元素時(shí),如果角標(biāo)超過了數(shù)組范圍,就會(huì)發(fā)生運(yùn)行時(shí)異常,代碼如下:

  在上面的代碼中,由于數(shù)組arr的length為5,最大角標(biāo)應(yīng)為4,當(dāng)使用arr[6]訪問數(shù)組中的元素時(shí)就會(huì)發(fā)生數(shù)組角標(biāo)越界的異常。

0 分享到:
和我們?cè)诰€交談!