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 printfoder sogar, mallocweil 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?
tryAnweisung 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! NULLWenn 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 errnoVariable 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 == EACCESdies auf einen Berechtigungsfehler hinweist oder ENOENTob die angeforderte Datei nicht vorhanden ist.
try/ nicht catch, obwohl Sie es mit Sprüngen simulieren könnten.