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

时间:2011-10-12 09:27:19

标签: c# .net exception code-analysis static-analysis

我想知道是否有工具可以使用静态代码分析在C#中查找未捕获的异常?基本上我想选择一个方法A()并想要一个由methodA()抛出的所有异常的列表以及methodA()调用的所有方法。我尝试了ReSharper + Agent JohnsonAtomineerUtils,都失败了这个简单的任务。

这是我的示例代码:

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.

1 个答案:

答案 0 :(得分:6)

我在IDE中使用了一个R#addin - Exceptional。错误的想法,结果是它抱怨每一个字符串。格式调用和可能确实抛出的类似常见情况,但这不会导致问题。

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