00001 #if !defined(AFX_MYEXCEPTION_H__70AB5B86_0239_4F62_B3F5_61A033D526AF__INCLUDED_)
00002 #define AFX_MYEXCEPTION_H__70AB5B86_0239_4F62_B3F5_61A033D526AF__INCLUDED_
00003
00004 #if _MSC_VER > 1000
00005 #pragma once
00006 #endif // _MSC_VER > 1000
00007
00008 #include "MyString.h"
00009
00010 class MyException
00011 {
00012 private:
00013 MyString m_message;
00014 MyString m_param;
00015 MyString m_methodeName;
00016 MyString m_className;
00017
00018 public:
00019 MyException()
00020 {
00021 }
00022
00023 MyException(char *className,char *methodeName,char *message,char *param=NULL)
00024 {
00025 Init(className,methodeName,message,param);
00026 }
00027
00028 void Init (char *className,char *methodeName,char *message,char *param=NULL)
00029 {
00030 m_message = message;
00031 m_methodeName = methodeName;
00032 m_className = className;
00033 m_param = param;
00034 MessageBox();
00035 }
00036
00037 int MessageBox()
00038 {
00039 MyString temp;
00040 temp<<"Context: "<<m_className<<m_methodeName<<"\nMessage: "<<m_message;
00041 if (m_param != "") temp<<"\nValue: "<<m_param;
00042 return ::MessageBox(NULL,temp,"Error Exception",0);
00043 }
00044 };
00045
00046 class MyExceptionMemory : public MyException
00047 {
00048 public:
00049 MyExceptionMemory(char *className,char *methodeName,long size)
00050 {
00051 MyString temp;
00052 temp<<"no more memory for "<<size<<" bytes";
00053 Init(className,methodeName,temp);
00054 }
00055 };
00056
00057 class CMsgBox
00058 {
00059 public:
00060 MyString m_message;
00061 MyString m_title;
00062 int m_style;
00063
00064 public:
00065 CMsgBox(char *message,char *title,int style=0)
00066 {
00067 m_message = message;
00068 m_title = title;
00069 m_style = style;
00070 }
00071
00072 int MessageBox()
00073 {
00074 return ::MessageBox(NULL,m_message,m_title,m_style);
00075 }
00076 };
00077
00078 #endif // !defined(AFX_MYEXCEPTION_H__70AB5B86_0239_4F62_B3F5_61A033D526AF__INCLUDED_)