#ifndef _except_h
#define _except_h
#include <string>
using namespace Std;
Server exception
Class Cmyexception:public Exception {
Public
Cmyexception (void):
M_msg ("Server Exception!") {}
Cmyexception (const string& msg):
M_msg ("Server Exception:") {
M_msg + = msg;
M_msg + = "!";
}
~cmyexception (void) throw () {}
Const char* What (void) const throw () {
return M_msg.c_str ();
}
Private
String m_msg;
};
Database exception
Class Dbexception:public Cmyexception {
Public
Dbexception (void):
Cmyexception ("Database Exception") {}
Dbexception (const string& msg):
Cmyexception (msg) {}
};
Socket exception
Class Socketexception:public Cmyexception {
Public
SocketException (void):
Cmyexception ("Socket Exception") {}
SocketException (const string& msg):
Cmyexception (msg) {}
};
Thread exception
Class Threadexception:public Cmyexception {
Public
ThreadException (void):
Cmyexception ("Thread Exception") {}
ThreadException (const string& msg):
Cmyexception (msg) {}
};
Login exception
Class Loginexception:public Cmyexception {
Public
Loginexception (void):
Cmyexception ("Login Exception") {}
Loginexception (const string& msg):
Cmyexception (msg) {}
};
Class Clienthandlerexception:public Cmyexception {
Public
Clienthandlerexception (void):
Cmyexception ("Login Exception") {}
Clienthandlerexception (const string& msg):
Cmyexception (msg) {}
};
#endif//_except_h
=================================================================================
Try
{
}catch (Cmyexception ex)
{
#ifdef _DEBUG
OutputDebugString ("\ r \ n");
OutputDebugString (Ex.what ());
OutputDebugString ("\ r \ n");
#endif
}
This article from the "Do not know the day" blog, declined to reprint!
Exception Encapsulation Class