SonarSource/sonar-dotnet

Fix S1854 FP: Value used after catch

Opened this issue · 0 comments

Removing the if will make this work as expected.
The block before try should already be connected to catch block. It's not clear why it produces a FP

    public int ReadAfterCatchAll_WithType(bool condition)
    {
        var value = 100;    // Noncompliant FP, used after catch all
        try
        {
            CanThrow();
            if (condition)
            {
                CanThrow();
            }
            value = 200;
        }
        catch (Exception exc)
        {
        }
        return value;
    }

This likely has the same root cause as

    public void ReadInCatch_WithBranching(bool condition)
    {
        var value = 100;    // Noncompliant FP, used in catch
        try
        {
            value = CanThrow();
            if (condition)
            {
                CanThrow();
            }
            else
            {
                CanThrow();
            }
        }
        catch
        {
            Log(value);
        }
    }