SA0076: Fehlende Aufzählungskonstante
Funktion | Ermittelt, ob in CASE-Anweisungen jede Enumerationskonstante als Bedingung verwendet und in einem CASE-Zweig abgefragt wird. |
Begründung | Defensive Programmierung erfordert die Bearbeitung aller möglichen Werte einer Enumeration. Wenn für einen bestimmten Enumerationswert keine Aktion nötig ist, dann sollten Sie dies explizit durch einen Kommentar kennzeichnen. Damit wird deutlich, dass der Wert nicht einfach vergessen wurde. |
Wichtigkeit | Niedrig |
Beispiel:
Im folgenden Beispiel wird der Enumerationswert eYellow nicht als CASE-Zweig behandelt.
Enumeration E_Color:
TYPE E_Color :
(
eRed,
eGreen,
eBlue,
eYellow
);
END_TYPEProgramm MAIN:
PROGRAM MAIN
VAR
eColor : E_Color;
bVar : BOOL;
END_VAReColor := E_Color.eYellow;
CASE eColor OF // => SA0076
E_Color.eRed:
bVar := FALSE;
E_Color.eGreen,
E_Color.eBlue:
bVar := TRUE;
ELSE
bVar := NOT bVar;
END_CASE