首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> C# >> 關於C#

C# try-catch 異常處理:多重捕獲與最佳實踐

     編輯:關於C#

基本語法

try
{
    // 可能拋出異常的代碼
}
catch (SpecificException ex)
{
    // 處理特定異常
}
catch (Exception ex)
{
    // 捕獲所有其他異常(放最後)
}

完整範例:多重 catch 區塊

using System;

class MainClass
{
    static void ProcessString(string str)
    {
        if (str == null)
            throw new ArgumentNullException();
    }

    static void Main()
    {
        Console.WriteLine("輸出結果為:");
        try
        {
            string str = null;
            ProcessString(str);
        }
        catch (ArgumentNullException e)
        {
            Console.WriteLine("{0} First exception.", e.Message);
        }
        catch (Exception e)
        {
            Console.WriteLine("{0} Second exception.", e.Message);
        }
    }
}

關鍵規則

  1. 具體異常在前,基類異常在後:ArgumentNullException 繼承自 Exception,必須先捕獲子類別。
  2. 一個 try 可對應多個 catch:依異常型別分流處理邏輯。
  3. catch 參數可省略:catch { } 等同 catch (Exception) { },但無法存取異常物件。

最佳實踐建議

  • 捕獲具體異常:避免捕獲 Exception 掩蓋預期外錯誤。
  • 異常處理要有意義:記錄日誌、重試、轉換為領域異常、友善提示使用者——不要只是吞掉。
  • 避免控制流程濫用:異常用於「異常狀況」,非一般邏輯分支(如驗證失敗用回傳值或 Result 模式)。
  • 保留堆疊追蹤:throw; 重拋原異常,throw ex; 會重設堆疊追蹤導致除錯困難。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved