異常處理

请明月發表於2024-10-18

基本概念

異常處理是一種用於檢測和響應執行時錯誤的機制。當程式遇到無法繼續執行的情況時,它可以丟擲一個異常。C# 異常處理時建立在四個關鍵詞之上的:try、catch、finally 和 throw。

  • try:一個 try 塊標識了一個將被啟用的特定的異常的程式碼塊。後跟一個或多個 catch 塊。
  • catch:程式透過異常處理程式捕獲異常。catch 關鍵字表示異常的捕獲。
  • finally:finally 塊用於執行給定的語句,不管異常是否被丟擲都會執行。例如,如果您開啟一個檔案,不管是否出現異常檔案都要被關閉。
  • throw:當問題出現時,程式丟擲一個異常。使用 throw 關鍵字來完成。

C#中的異常類

.NET提供了許多異常類來表示不同型別的錯誤條件,它們主要是直接或間接派生於System.Exception類。常用的System.ApplicationException 和 System.SystemException 類就是派生於 System.Exception 類的異常類。
System.ApplicationException 類支援由應用程式生成的異常。所以程式設計師定義的異常都應派生自該類。
System.SystemException 類是所有預定義的系統異常的基類。

程式碼示例

static void Main(string[] args)
{
    try
    {
        // 嘗試開啟檔案並讀取內容
        using (FileStream fs = File.Open("D:\\test.txt",FileMode.Open))
        {
            byte[] bytes = BitConverter.GetBytes(1000);
            fs.Write(bytes, 0, bytes.Length);
        }
    }
    catch (FileNotFoundException ex)
    {
        Console.WriteLine("檔案未找到: " + ex.Message);
    }
    catch (IOException ex)
    {
        Console.WriteLine("I/O 錯誤: " + ex.Message);
    }
    finally
    {
        Console.WriteLine("操作完成。");
    }
}

表現

若存在該檔案

若不存在該檔案

若已存在該檔案,再將FileMode改為CreateNew