Tôi tự hỏi liệu có một công cụ để tìm các ngoại lệ không bị bắt trong C# bằng cách sử dụng phân tích mã tĩnh không? Về cơ bản tôi muốn chọn một methodA() và muốn có một danh sách tất cả các ngoại lệ được đưa ra bởi methodA() và tất cả các phương thức được gọi bởi methodA(). Tôi đã thử ReSharper + Agent Johnson và AtomineerUtils, cả hai đều không thực hiện được thao tác đơn giản này.Tìm các trường hợp ngoại lệ chưa từng có trong C# code
Dưới đây là code ví dụ của tôi:
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();
}
}
Công cụ này sẽ có thể cho tôi biết (dưới mọi hình thức) mà Diện tích() phương pháp sẽ ném ArgumentOutOfRangeException
hoặc InvalidOperationException.
tôi thấy những gì bạn muốn và nơi bạn đang cố gắng để đi nhưng vẫn còn, xem xét rằng trong nhiều trường hợp nó là ok để ném ngoại lệ từ mã, thực tế là mỗi khi bạn sử dụng các phương pháp đó từ các lớp tiêu thụ thực tế của bạn, bạn nên bắt ở đó, có lẽ 100% tốt mà Khu vực ném một cái gì đó và sẽ không cần bắt ở đó, nhưng ai gọi Rectangle.Area nên ... –
@Davide Piras: Tôi hiểu quan điểm của bạn và đồng ý với bạn, nhưng hãy xem xét việc bạn đang sử dụng thư viện của bên thứ ba với tài liệu thực sự tồi tệ - việc tìm kiếm không bị bắt (hoặc gọi chúng là "có thể bị ném") ngoại lệ sẽ thực sự dễ dàng gỡ lỗi và phát triển. – Korexio