C++: Fehlerhandling

Errorfunktion selber schreiben

void error( std::string message){
    std::cout << message << "\n";
} 


// im code anderer Funktion
if (input < 0) {
   error("ungültiger Wert. \n");
}

Dient zum Überprüfen falscher Argumente
.

Exceptions (Klasse verarbeitet Fehler)
Exceptions trennen den Fehlererkennung  (in Funktion) vom  Verarbeitungsort (main).

– Es wird ein Klasse pro Fehlertyp definiert
.  Aufgabe der Klasse: Fehlermeldung werfen
– Im main werden die Fehlermeldungen global gesamelt

// Notwendige Infrastruktur: Leere Fehlerklasse
class Zero_Input{  };

// Fehlerdetektion in Funktion
int get_value(){
     if (cin == ""  || cin == "0"){
         throw Zero_Input{};
     }
}

// Fehlerbehandlung aufgrund der Klassen
int main()
try{ 
      <code main>
   }
catch( Zero_Input ){
      std::cerr<< "Ops. Leerer Input \n";
      return 1;
}

– main() ist ohne geschweifte Klammern !
– Fehlerausgabe auf std:cerr nicht auf std::cout
Returnwert hat einen Wert unterschiedlich von 0