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.


Anmelden zum Antworten