HOW TO:使用 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) 內指派它。