Найти необработанные исключения в коде C # - PullRequest
5 голосов
/ 12 октября 2011

Мне интересно, есть ли инструмент для поиска неперехваченных исключений в C # с использованием статического анализа кода?По сути, я хочу выбрать метод A () и получить список всех исключений, создаваемых методом A (), и всех методов, вызываемых методом A ().Я попытался ReSharper + Агент Джонсон и 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.

1 Ответ

6 голосов
/ 12 октября 2011

Я использовал R # addin однажды, который сделал это в IDE - Исключительно.Плохая идея, оказывается, что он жалуется на каждую отдельную строку. Вызов формата и аналогичные распространенные случаи, которые действительно могут выдать, но это не вызовет проблем.

Решите сами, стоит ли это: https://github.com/CSharpAnalyzers/ExceptionalReSharper

...