iT邦幫忙

2023 iThome 鐵人賽

DAY 22
0
Software Development

Java基礎筆記系列 第 22

Java的例外機制Exception

  • 分享至 

  • xImage
  •  

許多程式語言都有例外機制(Exception Handling),可以處理在程式運行中錯誤的方法,讓程式遇到錯誤時還能繼續運行,這可能是使用者輸入錯誤、或是程式設計師執行時抓不到正確資料,此時透過例外機制能使其程式不會導致完全停止或崩潰,讓程式更加穩定。

例外處理結構

  • try{}放置可能會出現錯誤的程式碼
  • catch{ }當try區域真的發生錯誤,會執行此內容
  • finally{}放在後面,不論是否有發生錯誤,都會執行此內容。通常用於關閉資料庫連線等釋放有限資源。
  • throws 此方法內無try...catch,代表將問題丟給下個呼叫此方法的人。
  • throw 手動丟出一個錯誤
public class ExceptionExample{
    
    public static void main(String[] args){
        double[] numbers = {1.0, 0.0, 3.0, 4.0 };
        
        for (double num : numbers){
            try{
                double result = calculate(num);
                System.out.println(num+"的倒數是"+result);
            }catch (ArithmeticException e){
                System.out.println("錯誤,無法計算"+num+"的倒數!");
            }finally {
                System.out.println("數字處理完成!\n");
            }
        
        }
    
    }

    public static double calculate(double num){
        if(num == 0 ){
            throw new ArithmeticException();
        }
        return 1/num;
    }
}

錯誤的類型

  • Error 不處理
    發生Error的錯誤,程式通常會直接終止,所寫的程式都讀不到,因此無法啟動例外處理,例如OutOfMemoryError;通常是基於系統或環境原因,程式無法處理。
  • Exception 需處理
    分為兩大類:
    • RuntimeException:大多是程式邏輯錯誤造成,例如除以零、找尋超出陣列邊界的元素。例如NullPointerException或IndexOutOfBoundsException。
    • 非RuntimeException:是編譯程式時就可預見且須處理,例如檔案可能讀取失敗、網路可能連結失敗。例如IOException或SQLException。

上一篇
Java的三大集合:ArrayList、HashSet、Map
下一篇
Java的final家族及throw和throws
系列文
Java基礎筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言