2024-05-25|閱讀時間 ‧ 約 24 分鐘

C#入門-Day9:例外處理

    為什麼要使用「例外處理」

    例外處理用於處理程式在運行時可能出現的錯誤情況,這樣可以確保程式的穩定性和安全性。

    語法

    C#使用 try-catch 語法來進行例外處理:

    try
    {
    // 可能出現異常的程式碼
    }
    catch (Exception ex)
    {
    // 處理異常的程式碼
    Console.WriteLine(ex.Message);
    }

    簡單範例

    try
    {
    int divideByZero = 5 / 0;
    }
    catch (DivideByZeroException ex)
    {
    Console.WriteLine("Dividing by zero is not allowed. Error: " + ex.Message);
    }

    使用多個catch塊來處理多種異常

    在C#中,你可以使用多個 catch 塊來處理不同類型的異常。這樣,你可以根據異常的類型來進行特定的錯誤處理。下面是一個例子:

    try
    {
    // 可能出現異常的程式碼
    }
    catch (DivideByZeroException ex)
    {
    // 處理除以零的異常
    Console.WriteLine("Dividing by zero is not allowed. Error: " + ex.Message);
    }
    catch (IndexOutOfRangeException ex)
    {
    // 處理索引越界的異常
    Console.WriteLine("Index out of range. Error: " + ex.Message);
    }
    catch (Exception ex)
    {
    // 處理其他類型的異常
    Console.WriteLine(ex.Message);
    }

    在這個例子中,如果程式碼塊中出現了除以零或者索引越界的異常,則會執行對應的 catch 塊。如果出現了其他類型的異常,則會執行最後一個 catch 塊。

    使用Finally區塊

    finally 關鍵字用於無論是否發生異常,都將執行的程式碼區塊:

    try
    {
    // 可能出現異常的程式碼
    }
    catch (Exception ex)
    {
    // 處理異常的程式碼
    }
    finally
    {
    // 無論是否發生異常,都會執行的程式碼
    }

    常見異常類型

    • System.Exception:所有異常的基類。
    • System.NullReferenceException:引用未設置為對象實例時引發。
    • System.IndexOutOfRangeException:試圖訪問超出陣列範圍的元素時引發。
    • System.InvalidOperationException:方法調用的狀態無效時引發。
    • System.ArgumentException:傳遞給方法的參數無效時引發。

    主動觸發異常訊息

    你可以使用 throw 關鍵字來主動引發異常:

    throw new Exception("This is an exception.");

    主動觸發用戶自定義異常訊息

    可以自定義 Exception 類別來產生特定的異常訊息:

    public class CustomException : Exception
    {
    public CustomException(string message) : base(message)
    {
    }
    }

    // 使用
    throw new CustomException("This is a custom exception.");
    分享至
    成為作者繼續創作的動力吧!
    © 2024 vocus All rights reserved.