Als guter Programmierer sollte man robuste Codes schreiben, die jedes einzelne Ergebnis seines Programms verarbeiten. Fast alle Funktionen aus der C-Bibliothek geben jedoch 0 oder -1 oder NULL zurück, wenn ein Fehler auftritt.
Manchmal ist es offensichtlich, dass eine Fehlerprüfung erforderlich ist, beispielsweise beim Versuch, eine Datei zu öffnen. Aber ich ignoriere oft die Fehlerprüfung in Funktionen wie printf
oder sogar, malloc
weil ich mich nicht notwendig fühle.
if(fprintf(stderr, "%s", errMsg) < 0){
perror("An error occurred while displaying the previous error.");
exit(1);
}
Ist es eine gute Praxis, bestimmte Fehler einfach zu ignorieren, oder gibt es eine bessere Möglichkeit, alle Fehler zu behandeln?
try
Anweisung abdecken , sodass Sie nicht jeden einzelnen Aufruf oder Vorgang überprüfen müssen. (Beachten Sie auch, dass einige Sprachen einfache Fehler wie Null-Dereferenzierung oder Array-Index außerhalb der Grenzen besser erkennen als andere.)
errno
! NULL
Wenn Sie nicht vertraut sind, wird zwar "fast alle Funktionen aus der C-Bibliothek 0 oder -1 zurückgeben oder wenn ein Fehler auftritt", aber auch die globale errno
Variable festgelegt , auf die Sie zugreifen können, indem Sie sie verwenden #include <errno.h>
und dann einfach lesen der Wert von errno
. Wenn beispielsweise open
(2) zurückgibt -1
, möchten Sie möglicherweise überprüfen, ob errno == EACCES
dies auf einen Berechtigungsfehler hinweist oder ENOENT
ob die angeforderte Datei nicht vorhanden ist.
try
/ nicht catch
, obwohl Sie es mit Sprüngen simulieren könnten.