iT邦幫忙

0

Day 19 | Java 例外處理:try-catch 捕捉錯誤與防護

  • 分享至 

  • xImage
  •  

在前面的單元中我們學會了各種資料結構與陣列。但在實際寫程式時,常常會遇到一些預料之外的狀況(例如:使用者不小心輸入了文字而不是數字、或者陣列讀取超過範圍)。如果沒有做好防護,程式就會直接崩潰終止。這篇要來學習 Java 非常重要的防護機制:例外處理 (Exception Handling - try-catch)。


  • 什麼是例外 (Exception)?
  1. 例外:指的是程式在執行過程中發生的錯誤狀況(例如除以零、轉型錯誤、檔案找不到等)。
  2. 為什麼需要例外處理?:如果不處理,程式一旦出錯就會立刻「當機(Crash)」停止執行。透過 try-catch,我們可以捕捉錯誤,讓程式可以繼續順暢運作下去。
  • try-catch 的基本語法
try {
    // 1. 把「可能會有風險、會出錯」的程式碼放這裡
} catch (Exception e) {
    // 2. 當 try 裡面的程式碼真的出錯時,程式會被攔截並跳到這裡執行
    // 可以在這裡印出錯誤訊息或做補救措施
}
  • 範例
  1. 基本的除法錯誤捕捉
public class TryCatchTest {
    public static void main(String[] args) {
        int a = 10;
        int b = 0; // 故意設為 0

        try {
            // 這行會發生數學錯誤 (ArithmeticException: / by zero)
            int result = a / b; 
            System.out.println("計算結果:" + result);
        } catch (Exception e) {
            // 當錯誤發生時,程式不會崩潰,而是執行這裡的程式碼
            System.out.println("發生錯誤了!不能除以零喔!");
            // e.getMessage() 可以印出詳細的錯誤原因
            System.out.println("錯誤原因:" + e.getMessage());
        }

        System.out.println("程式安全執行結束,沒有當機!");
    }
}
  1. 常見的例外型態 (Exception Types)
*ArithmeticException:數學運算錯誤(例如除以零)。
*ArrayIndexOutOfBoundsException:陣列索引超出範圍。
*NumberFormatException:字串轉數字格式錯誤(例如把 "abc" 轉成整數)。
*也可以直接用萬用型態 Exception e 來捕捉所有類型的例外。
  • 參考教學影片:https://youtu.be/RXPAMZEYEi8?si=CmeKGyW5tZp5TyOA

*提醒邦友,使用第三方服務/API 時,請務必評估資安風險與隱私保護
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言