The analyzer has detected a potential division by zero.
The example:
if (maxHeight >= 0) { fx = height / maxHeight; }
It is checked in the condition if the value of the maxHeight
variable is non-negative. If this value equals 0
, the division by zero occurs inside the if
statement's body. To fix this issue, ensure that the division operation is executed only when maxHeight
refers to a positive number.
The fixed code:
if (maxHeight > 0) { fx = height / maxHeight; }
The division by the value obtained from an external source is unsafe:
void Division() { var divisibleStr = Request.QueryString["divisible"]; var dividerStr = Request.QueryString["divider"]; if ( Int32.TryParse(divisibleStr, out int divisible) && Int32.TryParse(dividerStr, out int divider)) { int difference = divisible / divider; } }
The value for dividerStr
, obtained from an external source, is converted to int
and assigned to the divider
variable. This variable is then used as a divisor. If the value is 0
, it can lead to the division by zero.
To fix this potential issue, check divider
before performing the division:
void Division() { var divisibleStr = Request.QueryString["divisible"]; var dividerStr = Request.QueryString["divider"]; if ( Int32.TryParse(divisibleStr, out int divisible) && Int32.TryParse(dividerStr, out int divider) && divider != 0) // <= { int difference = divisible / divider; } }
This diagnostic is classified as:
You can look at examples of errors detected by the V3064 diagnostic. |