SA0075: Fehlendes ELSE

Funktion

Ermittelt CASE-Anweisungen ohne ELSE-Zweig.

Begründung

Defensive Programmierung fordert das Vorhandensein eines ELSE in jeder CASE-Anweisung. Wenn im ELSE-Fall nichts zu tun ist, dann sollten Sie dies durch einen Kommentar kennzeichnen. Dem Leser des Codes ist dann klar, dass der Fall nicht einfach vergessen wurde.

Ausnahme

Ein fehlender ELSE-Zweig wird nicht als fehlend berichtet, wenn in der CASE-Anweisung eine Enumeration verwendet wird, die mit dem Attribut 'strict' deklariert ist, und wenn in dieser CASE-Anweisung alle Enumerationskonstanten aufgeführt sind.

Wichtigkeit

Niedrig

PLCopen-Regel

L17

Beispiel:

{attribute 'qualified_only'}
{attribute 'strict'}
{attribute 'to_string'}
TYPE E_Sample :
(
    eNull,
    eOne,
    eTwo
);
END_TYPE
PROGRAM MAIN
VAR
    eSample : E_Sample;
    nVar    : INT;
END_VAR
CASE eSample OF
    E_Sample.eNull: nVar := 0;
    E_Sample.eOne:  nVar := 1;
    E_Sample.eTwo:  nVar := 2;
END_CASE

CASE eSample OF                  // => SA0075
    E_Sample.eNull: nVar := 0;
    E_Sample.eTwo:  nVar := 2;
END_CASE