Rückgabewerte von Funktionen prüfen

Viele Methoden liefern auch einen Rückgabewert, ob alles geklappt hat. Den kann man prüfen, macht man aber nicht. Beispiele?

Gegeben sei folgender Funktions Prototyp (wir nehmen mal C als Sprache):

int myMethod(void);

Also wird das im Programm dann mal so aufgerufen:

...
myMethod();
...

Wird so auch laufen, ggf. macht der Compiler eine Warnung die in der Menge der hundert anderen untergehen wird. Um die Warnung zu umgehen macht der Entwickler aus der Hölle dann ggf. dieses:

...
(void)myMethod();
...

OK, nun wird offensiv damit geworben jedmöglichen Rückgabewert vertrauensvoll zu vernichten. Kann man machen, ist aber immer noch riskant. Also wird man womöglich so vorgehen wollen:

...
if(RC_OK == myMethod()) {
   // mach was
}
...

Nun fragen wir wenigstens mal den normalen Fall ab. Bei allen anderen Fehlern wird hat nichts gemacht. Aber nun wird eine statische Codeanalyse immer noch etwas zu nörgeln haben. Denn die Rückgabewerte nehmen wir mal als RC_OK und RC_ERROR an. Dann wäre der Fehlerfall immer noch stillschweigend nicht behandelt worden. Besser wäre also ein else in dem Fall:

...
if(RC_OK == myMethod()) {
   // mach was
} else {
   // Fehler melden
}
...

Nun sollten alle Zweige erfüllt sein.

Der Nachteil: Das Programm wird sich zwangsläufig aufblähen, wenn man alle Fälle ausprogrammieren muss, aber nur so ist eine vollständige Abdeckung aller Zweige möglich.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.