V3006. The object was created but it is not being used. The 'throw' keyword could be missing.


The analyzer has detected a potential error when an instance of a class derived from System.Exception is created but not being used in any way.

Here's an example of incorrect code:

public void DoSomething(int index)
{
  if (index < 0)
    new ArgumentOutOfRangeException(); 
  else
  ....
}

In this fragment, the 'throw' statement is missing, so executing this code will only result in creating an instance of a class derived from System.Exception without it being used in any way, and the exception won't be generated. The correct version of this code should look something like this:

public void DoSomething(int index)
{
  if (index < 0)
    throw new ArgumentOutOfRangeException(); 
  else
  ....
}

According to Common Weakness Enumeration, potential errors found by using this diagnostic are classified as CWE-390.

You can look at examples of errors detected by the V3006 diagnostic.


Do you make errors in the code?

Check your code
with PVS-Studio

Static code analysis
for C, C++, and C#

goto PVS-Studio;