在C#中,處理異常情況通常使用try-catch
語句。try
塊包含可能引發異常的代碼,而catch
塊包含處理異常的代碼。當try
塊中的代碼引發異常時,程序將跳轉到相應的catch
塊。如果沒有匹配的catch
塊,異常將被傳播到調用棧中的更高層,直到被捕獲或導致程序終止。
以下是一個簡單的示例,展示了如何使用try-catch
處理異常:
using System;
class ExceptionHandlingExample
{
static void Main()
{
int[] numbers = new int[5];
try
{
// 嘗試訪問數組中不存在的元素,將引發異常
Console.WriteLine(numbers[5]);
}
catch (IndexOutOfRangeException ex)
{
// 處理異常
Console.WriteLine("發生錯誤: " + ex.Message);
}
}
}
在這個示例中,我們嘗試訪問數組中不存在的元素,這將引發IndexOutOfRangeException
異常。我們使用catch
塊捕獲這個異常,并輸出一條錯誤消息。
對于更復雜的異常處理,可以使用多個catch
塊來捕獲不同類型的異常,或者使用finally
塊來執行無論是否發生異常都需要執行的代碼。例如:
using System;
class ExceptionHandlingExample
{
static void Main()
{
try
{
// 可能引發異常的代碼
}
catch (IndexOutOfRangeException ex)
{
// 處理特定類型的異常
Console.WriteLine("發生錯誤: " + ex.Message);
}
catch (DivideByZeroException ex)
{
// 處理另一個特定類型的異常
Console.WriteLine("發生錯誤: " + ex.Message);
}
finally
{
// 無論是否發生異常都會執行的代碼
Console.WriteLine("異常處理完成");
}
}
}
在這個示例中,我們使用兩個catch
塊分別捕獲IndexOutOfRangeException
和DivideByZeroException
異常,并在finally
塊中執行一些清理操作。