Ausnahmebehandlung - Parameter übergeben?
-
Hallo!
Ich habe in C++ folgende Ausnahmebehandlung...
int main(int argc, char **argv) try { //irgendwo im Programm: int number = 99; throw "parsing failed; stopped at" + number; } catch (out_of_range const& oor) { cerr << argv[0] << ": " << oor.what() << endl; return 1; } catch(???????) { }Das Zusammensetzen des String funktioniert aber nicht, also "parsing failed; stopped at" + number ! wie kann ich die Exception schreiben?
-
catch(char const *str)iirc. Aber es ist sinnvoller dafür eine eigene Exceptionklasse zu nutzen
struct parsing_exception : std::runtime_error { parsing_exception(std::string const &str) : std::runtime_error(str) { } }; int main() try { throw parsing_exception("foo"); } catch(std::exception const &e) { std::cerr << "Error: " << e.what() << '\n'; }dann kann man nämlich gezielter catchen.
btw. achso "string"+int-Funktioniert so in C++ natürlich auch nicht!
-
Dieser Thread wurde von Moderator/in rüdiger aus dem Forum Rund um die Programmierung in das Forum C++ verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Dax schrieb:
Das Zusammensetzen des String funktioniert aber nicht, also "parsing failed; stopped at" + number ! wie kann ich die Exception schreiben?
Du kannst keinen
const char*zu einemintaddieren. Schau mal in diesem Thread nach, dort habe ich eine Lösung gepostet.