Fehlerabfangen
-
Hallo!
Kann man eigendlich auch in ANSI C wie auch C++ oder Delphi Fehler abfangen?
Also ich suche eine Art "try ... except" bzw. "try ... catch" Anweisung.
-
Nein, C führt von sich aus keine Fehlerüberprüfungen bzw. so gut wie keine aus,
dies ist Sache des Programmierers.
Aber ist eigentlich kein Unding, man muss eben prüfen ob alles klappt und wenn
nicht, dann überlegen was in solchen Fällen passieren soll.
-
Schade!
-
Ich wollte überprüfen ob atoi geklappt hat. Dann nutze ich wohl doch besser den C++ Compiler, obwohl sonst alles ANSI C ist.
-
atoi hat normal einen Rückgabewert und zwar den Integer, du musst schauen, was
atoi zurückliefert bei einem Fehler.Edit:
Habe eben nachgesehen, der zurückgelieferte Wert von atoi bei einem Fehler ist
nicht definiert, könntest du dann mit if (!atoi (string)) abfangen
-
Es wäre besser hierfür strtol (strtod, strtoul) zu benutzen, damit habe ich eine Möglickeit auf Fehler zu testen. Diese Funktionen arbeiten analog zu atoi/atof
Diese Lösung wandelt eine Eingabe in eine Zahl um. wenn der Eingabe string keine Zahl oder nach dem Ende der Zahl noch weitere Zeichen enthält zeigt *err nicht auf '\0' und man weis das ein Fehler aufgetreten ist
char* err; int umwandlung; // teste ob die Eingabe return ist falls nein umwandlung = strtol( wert, &err, 10 ); /* 10 ist die basis des zahlensystems */ if ( *err != '\0' ) { printf("Wert ist keine Zahl"}; }
-
Danke!!!