The analyzer has detected a loop whose termination conditions do not depend on the number of iterations. Such a loop can iterate 0, 1, or an infinite number of times.
Consider the following example of such a loop:
void Foo(int left, int right)
{
while(left < right)
{
Bar();
}
}
The problem is with the while loop: the variables being checked in the condition do not change; therefore, the loop will either never terminate or never start.
Here is another example of code that would trigger this diagnostic. A loop may become infinite if you forget to rethrow an exception in the 'try-catch' block down the stack:
while (condition)
{
try {
if(Foo())
{
throw new Exception();
}
}
catch (Exception ex)
{
....
}
}
To have this loop terminate on throwing the exception, you can, for example, rethrow this exception from the catch section using the throw statement:
while (condition)
{
try {
if(Foo())
{
throw new Exception();
}
}
catch (Exception ex)
{
....
throw;
}
}
Was this page helpful?
Your message has been sent. We will email you at
If you do not see the email in your inbox, please check if it is filtered to one of the following folders:
Take
a chance!