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_TYPEPROGRAM MAIN
VAR
eSample : E_Sample;
nVar : INT;
END_VARCASE 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