Kleines Problem mit Ausnahmebehandlung...



  • Hi,

    Das ist meine Error-Klasse:

    #ifndef ERROR_
    #define ERROR_
    
    enum error
    {
    	undefined,
    	wsastartupfailed,
    	connectionfailed
    };
    
    class Error
    {
    private:
    	error m_err;
    
    public:
    
    	Error() : m_err(undefined) {};
    	Error(error err) : m_err(err) {}
    	void  ErrorMessageOut() const;
    	error GetError() const {return m_err;}
    };
    
    #endif
    

    Und hier wollt ich sie verwenden:

    #include "MainC.h"
    #include "Error.h"
    
    MainC::MainC(DWORD ip, USHORT port)
    {
    	WSADATA wsadata;
    	int rc = WSAStartup(MAKEWORD(1, 0), &wsadata);
    	if(rc == SOCKET_ERROR)
    		throw(Error(wsastartupfailed)); // Zeile 9
    
    	m_S.Connect(ip, port);
    }
    

    Das funktioniert aber nicht, weil er in der Zeile 9 meldet:

    Visual C++ 6.0 Prof. schrieb:

    E:\Projekte\Miniproggs\ICQ\MainC.cpp(9) : error C2061: Syntaxfehler : Bezeichner 'wsastartupfailed'
    E:\Projekte\Miniproggs\ICQ\MainC.cpp(9) : error C2066: Typumwandlung in Funktionstyp nicht erlaubt
    E:\Projekte\Miniproggs\ICQ\MainC.cpp(9) : error C2059: Syntaxfehler : ';'

    Hm, ich glaube ich habe da irgend etwas missverstanden, kann mich kurz wer aufklären? 🙂

    MfG MAV



  • throw(Error(wsastartupfailed));

    throw ist ein *Operator* keine Funktion. Lass also die äußeren Klammern weg und das Problem sollte verschwinden.



  • Ach klar 😑

    OK, vielen Dank 🙂

    MfG MAV


Anmelden zum Antworten