gpt4 book ai didi

C# catch(FileNotFoundException) 和 CA1031

转载 作者:行者123 更新时间:2023-12-01 19:26:41 25 4
gpt4 key购买 nike

因此此代码会触发CA1031

try
{
// logic
}
catch (FileNotFoundException) // exception type
{
// handle error
}

虽然这个没有:

try
{
// logic
}
catch (FileNotFoundException ex) // exception var
{
// handle error
}

因为异常类型是有意义的,所以我不需要第一个示例中的 ex 。但它不是一般的异常类型。它不是 IOException 或 Exception。那么为什么它仍然会触发CA1031

除了我不捕获异常信息之外,catch(FileNotFoundException)catch(FileNotFoundException ex) 之间还有区别吗?

最佳答案

So this code triggers CA1031

try
{
// logic
}
catch (FileNotFoundException) // exception type
{
// handle error
}

发生这种情况是因为“一般异常(例如 System.Exception ”或 System.SystemException)在 catch 语句中被捕获,或者一般 catch 子句(例如 catch())用来”。要修复它,请分配它并处理错误,或者重新抛出一般异常以便进一步处理。

经过进一步调查,这似乎曾经是一个错误,您可以查看更多here ;这是 FxCopRoslyn 问题。

修复:只需更新最新的 FxCop 分析器包即可。

NuGet:

 Install-Package Microsoft.CodeAnalysis.FxCopAnalyzers -Version 2.9.7

引用文献: CA1031

关于C# catch(FileNotFoundException) 和 CA1031,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58648645/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com