共用方式為


如何:使用 try/catch 處理例外狀況 (C# 程式設計手冊)

try-catch 區塊的用途,是攔截和處理工作碼所產生的例外狀況。 某些例外狀況可在 catch 區塊中處理,並且可以解決問題而不會重新擲回例外狀況,不過,通常您只能用於確保會擲回適當的例外狀況。

範例

在此範例中,IndexOutOfRangeException 不是最適當的例外狀況:ArgumentOutOfRangeException 更適用於此方法,因為錯誤是由呼叫端傳入的 index 引數所導致。

class TestTryCatch
{
    static int GetInt(int[] array, int index)
    {
        try
        {
            return array[index];
        }
        catch (System.IndexOutOfRangeException e)  // CS0168
        {
            System.Console.WriteLine(e.Message);
            // Set IndexOutOfRangeException to the new exception's InnerException. 
            throw new System.ArgumentOutOfRangeException("index parameter is out of range.", e);
        }
    }
}

註解

造成例外狀況的程式碼位於 try 區塊中。 後面立即加入 catch 陳述式以處理 IndexOutOfRangeException (如果發生的話)。 catch 區塊會處理 IndexOutOfRangeException,然後改為擲回更適當的 ArgumentOutOfRangeException 例外狀況。 為了盡可能為呼叫端提供更多資訊,請考慮將原始的例外狀況指定為新例外狀況的 InnerException。 因為 InnerException 屬性為 readonly,所以您必須在新例外狀況的建構函式 (Constructor) 內指派它。

請參閱

參考

例外狀況和例外處理 (C# 程式設計手冊)

例外狀況處理 (C# 程式設計手冊)

概念

C# 程式設計手冊