在C#中,處理異常情況通常使用try-catch
語句。當你需要計算一個文件或數據流的校驗和時,可能會遇到各種異常情況,例如文件不存在、沒有讀取權限等。以下是一個簡單的示例,展示了如何在計算校驗和時處理異常:
using System;
using System.IO;
using System.Security.Cryptography;
class Program
{
static void Main(string[] args)
{
string filePath = "path/to/your/file";
try
{
using (var md5 = MD5.Create())
{
using (var stream = File.OpenRead(filePath))
{
byte[] checksum = md5.ComputeHash(stream);
Console.WriteLine($"MD5 Checksum: {BitConverter.ToString(checksum).Replace("-", string.Empty)}");
}
}
}
catch (FileNotFoundException)
{
Console.WriteLine($"文件未找到: {filePath}");
}
catch (UnauthorizedAccessException)
{
Console.WriteLine($"沒有讀取權限: {filePath}");
}
catch (IOException ex)
{
Console.WriteLine($"發生I/O錯誤: {ex.Message}");
}
catch (Exception ex)
{
Console.WriteLine($"發生未知錯誤: {ex.Message}");
}
}
}
在這個示例中,我們首先嘗試打開文件并計算其MD5校驗和。如果發生任何異常,我們將捕獲并處理它們。例如,如果文件不存在,我們將捕獲FileNotFoundException
并顯示一條消息。對于其他類型的異常,如UnauthorizedAccessException
和IOException
,我們也進行了相應的處理。最后,我們還捕獲了一個通用的Exception
,以便捕獲其他未知的異常類型。