【发布时间】:2020-08-05 10:46:24
【问题描述】:
现在,我不是在谈论 ArgumentNullException 或 InvalidOperationException,而是或多或少只是在谈论 HttpRequestException。
var responseAsync = httpClient.SendAsync(something);
try
{
var response = await responseAsync;
}
catch(Exception)
{
}
这段代码是否会抛出任何异常,或者我们可以安全地假设所有可能的异常只能在await期间发生?
【问题讨论】:
-
您是否有特定的理由不通过同一个
try/catch同时保护SendAsync和await?我认为它没有具体记录哪些异常可以/不能同步抛出。 -
@janw 我知道两者都是可能的,否则我什至不会问
-
显示的代码无法编译。如果你想在响应失败时
throw,你可以使用`HttpResponseMessage.EnsureSuccessStatusCode()方法。 -
首先它会编译,为什么不编译。其次,不成功的状态码和httpClient同步异常有什么关系?不仅
HttpResponseMessage是在Task之后创建的,它实际上是在任务完成时创建的。
标签: c# dotnet-httpclient