在C#中,異步方法中的異常處理與同步方法略有不同。當異步方法拋出異常時,它不會自動傳播到調用者那里。為了處理這些異常,你需要使用async和await關鍵字,并使用try-catch塊來捕獲異常。下面是一個示例:
using System;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
try
{
await CallAsyncMethod();
}
catch (Exception ex)
{
Console.WriteLine($"Error: {ex.Message}");
}
}
static async Task CallAsyncMethod()
{
await Task.Delay(1000); // 模擬異步操作
throw new InvalidOperationException("An error occurred in the async method.");
}
}
在這個示例中,CallAsyncMethod是一個異步方法,它拋出了一個異常。在Main方法中,我們使用try-catch塊來捕獲并處理這個異常。當CallAsyncMethod拋出異常時,它會被catch塊捕獲,并輸出錯誤信息。