为什么捕获AggregateException导致CA2000配置警告?

时间:2018-09-26 14:40:53

标签: c# asynchronous idisposable aggregateexception

下面的代码会引起代码分析警告CA2000,声称我需要在所有代码路径上处置getRequest之前,不要超出范围。 略微调整代码,例如从when中删除catch,可以消除警告。

try
{
    using (var getRequest = new HttpRequestMessage(HttpMethod.Get, uri))
    {
        using (var result = client.SendAsync(getRequest).Result)
        {
        }
    }
}
catch (AggregateException exc) when (exc.InnerExceptions.Count >= 0)
{
}

不调用哪个代码路径,为什么捕获/何时影响事物?

注意:我正在使用VS2015的内置代码分析。 CA2000位于托管二进制分析规则集中,并且(对于我来说)默认情况下未选中新的解决方案。 (VS2017也发出相同的警告)

0 个答案:

没有答案