在.NET Framework中,C#使用異常處理機(jī)制來(lái)處理錯(cuò)誤。異常是程序在運(yùn)行時(shí)遇到的問(wèn)題,如嘗試訪問(wèn)不存在的文件、除以零等。當(dāng)異常發(fā)生時(shí),程序會(huì)中斷執(zhí)行并跳轉(zhuǎn)到相應(yīng)的異常處理代碼,這樣可以確保程序不會(huì)因?yàn)殄e(cuò)誤而崩潰,并提供一種優(yōu)雅的錯(cuò)誤處理方式。
C#中的異常處理主要包括以下幾個(gè)關(guān)鍵字和概念:
以下是一個(gè)簡(jiǎn)單的C#異常處理示例:
using System;
using System.IO;
class Program
{
static void Main()
{
try
{
// 嘗試讀取一個(gè)不存在的文件
using (StreamReader sr = new StreamReader("nonexistent_file.txt"))
{
Console.WriteLine(sr.ReadToEnd());
}
}
catch (FileNotFoundException e)
{
// 捕獲并處理特定類型的異常(這里是FileNotFoundException)
Console.WriteLine("文件未找到: '{0}'", e.FileName);
}
catch (Exception e)
{
// 捕獲其他未處理的異常
Console.WriteLine("發(fā)生異常: {0}", e.Message);
}
finally
{
// 無(wú)論是否發(fā)生異常,都會(huì)執(zhí)行此代碼塊
Console.WriteLine("異常處理完成");
}
}
}
在這個(gè)示例中,我們嘗試讀取一個(gè)不存在的文件。如果文件不存在,程序會(huì)引發(fā)FileNotFoundException異常。通過(guò)使用try-catch塊,我們可以捕獲并處理這個(gè)異常,避免程序崩潰。最后,finally塊中的代碼將始終執(zhí)行,確保資源得到正確釋放。