SA0040: Mögliche Division durch Null

Funktion

Ermittelt Codestellen, an denen möglicherweise durch Null dividiert wird.

Begründung

Eine Division durch 0 ist nicht erlaubt. Eine Variable durch die dividiert wird, sollte immer vorher auf 0 überprüft werden. Andernfalls kann es zu einer "Divide by Zero"-Exception zur Laufzeit kommen.

Wichtigkeit

Hoch

Beispiel:

PROGRAM MAIN
VAR CONSTANT
    cSample     : INT := 100;
END_VAR
VAR
    nQuotient1  : INT;
    nDividend1  : INT;
    nDivisor1   : INT;
 
    nQuotient2  : INT;
    nDividend2  : INT;
    nDivisor2   : INT;
END_VAR
nDivisor1  := cSample;
nQuotient1 := nDividend1/nDivisor1;                 // no error
 
nQuotient2 := nDividend2/nDivisor2;                 // => SA0040