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