我想知道是否有工具可以使用静态代码分析在C#中查找未捕获的异常?基本上我想选择一个方法A()并想要一个由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()将抛出ArgumentOutOfRangeException
或InvalidOperationException.
答案 0 :(得分:6)
我在IDE中使用了一个R#addin - Exceptional。错误的想法,结果是它抱怨每一个字符串。格式调用和可能确实抛出的类似常见情况,但这不会导致问题。
确定自己是否值得:https://github.com/CSharpAnalyzers/ExceptionalReSharper