基本概念
異常處理是一種用於檢測和響應執行時錯誤的機制。當程式遇到無法繼續執行的情況時,它可以丟擲一個異常。C# 異常處理時建立在四個關鍵詞之上的:try、catch、finally 和 throw。
- try:一個 try 塊標識了一個將被啟用的特定的異常的程式碼塊。後跟一個或多個 catch 塊。
- catch:程式透過異常處理程式捕獲異常。catch 關鍵字表示異常的捕獲。
- finally:finally 塊用於執行給定的語句,不管異常是否被丟擲都會執行。例如,如果您開啟一個檔案,不管是否出現異常檔案都要被關閉。
- throw:當問題出現時,程式丟擲一個異常。使用 throw 關鍵字來完成。
C#中的異常類
.NET提供了許多異常類來表示不同型別的錯誤條件,它們主要是直接或間接派生於System.Exception類。常用的System.ApplicationException 和 System.SystemException 類就是派生於 System.Exception 類的異常類。
System.ApplicationException 類支援由應用程式生成的異常。所以程式設計師定義的異常都應派生自該類。
System.SystemException 類是所有預定義的系統異常的基類。
程式碼示例
static void Main(string[] args)
{
try
{
// 嘗試開啟檔案並讀取內容
using (FileStream fs = File.Open("D:\\test.txt",FileMode.Open))
{
byte[] bytes = BitConverter.GetBytes(1000);
fs.Write(bytes, 0, bytes.Length);
}
}
catch (FileNotFoundException ex)
{
Console.WriteLine("檔案未找到: " + ex.Message);
}
catch (IOException ex)
{
Console.WriteLine("I/O 錯誤: " + ex.Message);
}
finally
{
Console.WriteLine("操作完成。");
}
}
表現
若存在該檔案
若不存在該檔案
若已存在該檔案,再將FileMode改為CreateNew