HttpContent.ReadAsStringAsync是否会抛出非OperationCanceledException异常?现有catch块是否冗余?
HttpContent.ReadAsStringAsync异常处理代码的疑问解答
代码是否多余?
这段catch块完全是冗余的。
根据.NET 8官方文档描述,HttpContent.ReadAsStringAsync(CancellationToken)方法仅会在传入的取消令牌触发取消操作时,抛出OperationCanceledException,不会产生其他类型的异常。也就是说,这个catch块里“吞掉非OperationCanceledException异常”的逻辑,根本没有执行的机会,属于无效代码。
能否移除catch块?
如果OperationCanceledException会在调用链上游被捕获处理,那不仅可以移除这个catch块,连整个try-catch结构都能直接删掉,简化后的代码如下:
string? content = await result.Content.ReadAsStringAsync(cancellationToken);
内容的提问来源于stack exchange,提问作者sommmen
相关产品推荐
相关产品推荐

