SA0040: Olası sıfıra bölmePermalink

Sıfıra bölme olasılığı olan kod konumlarını tespit eder

Gerekçe: Sıfıra bölme asla gerçekleşmemelidir ve değişken bir paydada her zaman önce 0 olup olmadığı kontrol edilmelidir.

Önemliymiş: Yüksek

Örnek

VAR_GLOBAL
    g_iVar AT %QW1 : INT ; 		
END_VAR

PROGRAM PLC_PRG
VAR
	iCounter : INT;
	iSumme:INT;
	iMid:INT;
	iVal1:INT := INT#2;
	iVal2:INT;	
	iVal3:INT := INT#3;
	iVal4:INT := INT#4;
	iVal5:INT;
END_VAR

IF iVal2 <> 0 THEN
iVal1 := iVal1/iVal2;   // no error
END_IF;
iMid := iSumme / iCounter; //  SA0040
iCounter := iCounter + INT#1;
iSumme := g_iVar + iSumme;
IF iMid < INT#100 THEN
	iVal1 := iVal1 / iVal2;	   //  SA0040
END_IF

--> SA0040: Possible division by zero
--> SA0040: Possible division by zero