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!!!


Log in to reply