查找c#代码中未捕获的异常

本文关键字:异常 代码 查找 | 更新日期: 2023-09-27 18:11:14

我想知道是否有一种工具可以使用静态代码分析在c#中找到未捕获的异常?基本上,我想选择一个methodA(),并想要一个由methodA()抛出的所有异常和由methodA()调用的所有方法的列表。我尝试了ReSharper + Agent Johnson和AtomineerUtils,它们都失败了。

下面是我的示例代码:
public class Rectangle
{
    public int Width { get; set; }
    public int Height { get; set; }
    public int Area()
    {
        CheckProperties();
        long x = Width * Height;
        if (x > 10)
            throw new ArgumentOutOfRangeException();
        return (int) x;
    }
    private void CheckProperties()
    {
        if (Width < 0 || Height < 0)
            throw new InvalidOperationException();
    }
}

工具应该能够告诉我(以任何形式)方法Area()将抛出ArgumentOutOfRangeExceptionInvalidOperationException.

查找c#代码中未捕获的异常

我曾经在IDE中使用过一个r#插件-例外。坏主意,它会抱怨每一个字符串。格式调用和类似的常见情况可能确实抛出,但这不会引起问题。

自己决定是否值得:https://github.com/CSharpAnalyzers/ExceptionalReSharper