iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 10
0
自我挑戰組

JAVA系列 第 10

JAVA Exception、Error

  • 分享至 

  • xImage
  •  

首先我們來了解一下Exception跟Error的定義:
1.Exception: 通常指程式運行時所出現的可預料之意外狀況, 基本上都要進行 catch 的動作, 然後進行相應處理, 如 IOException.
2.Error: 指在正常情況下, 不太可能出現的問題, 絕大部分的 Error 都會導致程式 (e.g. JVM 本身) 處於一種不正常且不可恢復的狀態. 所以對於這種情況, 你也不太需要去 catch 了, 因為也沒什麼意義. 常見的如 OutOfMemoryError / StackOverflowError 這些, 都是繼承自 Error.

以上兩類Exception和Error都繼承自 Throwable,只有 Throwable 類型的 instance 才可以被 throw 或著 catch。

Exception又分為兩類:
1.Checked Exception: 又稱受檢例外, 通常在原始碼中必須顯式地 catch 並且處理, 這部分算是 compile time 會檢查的部分.
2.Unchecked Exception: 又稱非受檢例外, 就是所謂的 RuntimeException, 常見的像是 NullPointerException, ArrayIndexOutOfBoundsException. 這種類型的例外通常是可以透過撰寫相應程式以避免的邏輯錯誤, 可以根據當下的情境來判斷是不是要 catch, 且在 compile time 並不會強制要求要 catch.

而早期的程式開發人員常花時間在撰寫「檢查錯誤」的相關程式碼,因為當程式碼執行過程中,若發生「錯誤(Error)」時,將會中斷整個軟體的執行,造成程式無法繼續往下執行。

現代語言會預先認定可能出現 Exception-例外,若事先因為認定其會發生例外,就要求在設計過程中一定要將處理例外情形的程式碼預先撰寫設計好,當執行過程中真的產生例外時,會按照事先設計的程式碼來處理例外,程式也能正常的繼續執行。


上一篇
JAVA的資料型別
下一篇
JAVA package
系列文
JAVA30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言