Java – 例外異常機制

例外或是異常, 聽起來就是很不好的議題. 就像大多數提到關於Java的例外或是異常(Exception)的單元, 於是會提到程式開發難免會出錯, 所以就……

不是這樣的, 不是出錯, 出錯是Bug. 例外或是異常指的的是非預期狀況發生, 換句話來説, 有一條道路, 只要任何一台車子開到此處, 就會發生車禍, 那就是Bug, 對於程式設計而言就是設計不良;

而如果有時候, 或是不一定何時, 曾經發生過幾起車禍, 這就是例外或是異常. 而常常會看到的警告標誌, 例如繫好安全帶, 這也是在提醒用路人, 事先做好防範措施.

因此, 這與Bug完全不同的觀念.


Exception

在物件導向的世界中, 所有的東西都是物件, 例外異常也是. 也就是說, 你我口語中所說的任何一個名詞, 都是一個類別所產生出來的物件. 在Java API中, 特別將 Exception 獨立出來.

或是在 Java 9中,

但是, 還是與一般的類別是一樣的物件導向觀念. 其父類別為 java.lang.Throwable

Throwable 類別就是表示任何可以被拋出的物件, 換句一般常見的說法, 就是發生了閃退的現象. 也就是發生了意外事件, 本來不會有的, 就在那當下被產生出來, 而被拋出來的一個物件實體. 而在Java API中可以看到, 其下有兩個子類別, 就是Error 與 Exception, 會被拋出來的東西, 若要細分, 就是 Error 和 Exception.

而通常, 一旦 Error 被拋出來, 就不易透過程式來處理. 而 Exception 則可以透過程式來進行處理, 在日常生活中, 如果發生了意外事件, 就是會去處理, 處理完後就沒事了, 沒事就繼續做該做的事情. 在Java中就是這樣的觀念而已. 而所謂的處理, 在程式中, 會以以下語法處理:

try {
  // 可能或是存在指定Exception的程式區塊
}catch (Exception e) {
  // 處理Exception方式的程式區塊
}

 


執行階段拋出的例外: Runtime Exception

Yes, we’ll ship your package anywhere that can accept deliveries.


必須確認處理的例外: Checked Exception

Of course! Our friendly and knowledgeable customer services reps are available to answer your questions 24/7/365.

Yes, we’ll ship your package anywhere that can accept deliveries.


 

本站資源一切隨緣,
不用註冊, 不看廣告
如果對您有所助益,
歡迎功德隨喜, 金額隨意,
請點擊以下...(感謝您)

功德箱/打賞箱

%d bloggers like this: