在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
,我们打印出请求错误信息;如果发生其他类型的异常,我们打印出通用的错误信息。