在C#中,異步回調(Async Callback)通常用于處理異步操作的結果。為了處理錯誤,你可以使用Task
和async/await
模式。這里有一個簡單的示例,說明如何使用async/await
處理異步回調中的錯誤:
using System;
using System.Net.Http;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
try
{
await CallWebApiAsync();
}
catch (HttpRequestException e)
{
Console.WriteLine("Request error: " + e.Message);
}
catch (Exception e)
{
Console.WriteLine("Error: " + e.Message);
}
}
static async Task CallWebApiAsync()
{
using (HttpClient client = new HttpClient())
{
// 模擬一個異步回調方法
HttpResponseMessage response = await client.GetAsync("https://api.example.com/data");
// 檢查響應狀態碼
if (response.IsSuccessStatusCode)
{
// 讀取響應內容
string content = await response.Content.ReadAsStringAsync();
Console.WriteLine("Response content: " + content);
}
else
{
throw new HttpRequestException($"Request failed with status code: {response.StatusCode}");
}
}
}
}
在這個示例中,我們使用async/await
模式調用CallWebApiAsync
方法。這個方法使用HttpClient
發起一個異步HTTP請求。我們檢查響應的狀態碼,如果請求成功,我們讀取響應內容;否則,我們拋出一個HttpRequestException
異常。
在Main
方法中,我們使用try/catch
塊捕獲可能發生的異常。如果發生HttpRequestException
,我們打印出請求錯誤信息;如果發生其他類型的異常,我們打印出通用的錯誤信息。