我想知道是否有一種工具可以在C#中使用靜態代碼分析來查找未捕獲的異常?基本上我想選擇一個methodA()並且想要methodA()所拋出的所有異常以及methodA()所調用的所有方法的列表。我試過ReSharper + Agent Johnson和AtomineerUtils,都沒有通過這個簡單的任務。在C#代碼中查找未捕獲的異常
這裏是我的示例代碼:
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();
}
}
該工具應該能夠告訴我(任何形式),該方法面積()將拋出ArgumentOutOfRangeException
或InvalidOperationException.
我看到你想要什麼,在哪裏,你試圖去,但儘管如此,考慮到在很多情況下,它是確定從代碼拋出異常,但事實是,每次你從實際的消費類中使用這些方法時,你都應該趕上那裏,這可能是百分之百的罰款區域拋出的東西,並不需要在那裏捕捉,但誰叫Rectangle.Area應該... –
@Davide Piras:我明白你的觀點並且同意你的看法,但是考慮到你正在使用一個帶有非常糟糕文檔的大型第三方庫 - 發現未被捕獲的(或者讓我們稱它們爲「可能拋出的」)異常會真正簡化調試和開發。 – Korexio