throw invalid_argument exception

BLR

Erfahrenes Mitglied
Hallo,

ich möchte eine "invalid_argument exception" auslösen, sodass er auch in den dazu passenden catch-Block springt:
Code:
if ( Zahl ==0){
       throw invalid_argument("Ihre Eingabe war ungueltig: ");
}
 catch (invalid_argument& e) {
        cerr << e.what() << "\n";
        return -1;
    }
  catch (...) {
        cerr << "allgemeiner Fehler:  \n";
        return -2;

    }

Komischeweise springt er in den allgemeinen-exception Block und nicht in den dafür passenden "invalid_argument& "
Warum nur?
Was muss man tun, damit er in den ersten catch-Block springt****
Danke für jeden Tipp.
 
Hallo BLR

Ich glaube, da fehlt das try.
http://www.cplusplus.com/doc/tutorial/exceptions/

C:
try
{
    if ( Zahl ==0){
           throw invalid_argument("Ihre Eingabe war ungueltig: ");
    }
}
catch (invalid_argument& e) {
       cerr << e.what() << "\n";
       return -1;
}
catch (...) {
    cerr << "allgemeiner Fehler:  \n";
    return -2;
 
}

Ungetestet.

Gruss
cwriter
 
Zuletzt bearbeitet:
Hallo BLR

Das kann ich nicht bestätigen, wie sieht denn ein ausführbares Minimalbeispiel aus?

Viele Grüsse
Cromon
 
Komischeweise funktioniert das jetzt....deswegen war ich verwirrt....
Trotzdem Danke für deine Antwort
 
Zurück