funktioniert nicht
-
Warum wird hier nicht Fehler bei lol sondern nur fehler bei int ausgegeben?
#include <iostream> #include <string> using namespace std; int main() { try { int ivar = 10; string ilol = "lol"; if( ivar == 10 ) { throw ivar; throw ilol; } } catch( int iint ) { cout << iint << endl; // gibt 10 aus cout << "Fehler bei int" << endl; } catch ( string ilol ) { cout << "Fehler bei lol" << endl; } system("PAUSE"); return 0; }
-
Naja das ist wirklich nicht schwer zu erklären.
Ab einem throw wird der try Block sofort verlassen, und dann eben an die entsprechende catch Stelle gesprungen.

Das kannst du dir wie ein return in einer Funktion vorstellen, oder ein break in einer Schleife.
-
Abgesehen davon ist funktioniert nicht keine Fehlerbeschreibung und als Threadtitel gänzlich ungeeignet.