Skip to main content

SA0076: Fehlende Aufzählungskonstante

Ermittelt, ob in CASE-Anweisungen jede Enumerationskonstante als Bedingung verwendet und in einem CASE-Zweige 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. Dem Leser des Codes ist dann klar, dass der Wert nicht einfach vergessen wurde.

Wichtigkeit: Niedrig

Beispiel 83. Beispiel
TYPE My_Enum :
(
    red := 1, blue := 2, green := 3, black := 4
);
END_TYPE
PROGRAM PLC_PRG
VAR
    iVar : My_Enum;
    xTemp : BOOL;
END_VAR
iVar := My_Enum.black;
CASE iVar OF
    My_Enum.red:
        xTemp := FALSE;
    My_Enum.blue, My_Enum.green:
        xTemp := TRUE;
    ELSE
        xTemp := NOT xTemp;
END_CASE

Ausgabe unter Ansicht Meldungen:

  • sa_icon_message.png SA0076: Aufzählungskonstante 'black' fehlt in CASE-Anweisung