00001
00002
00003 #ifndef EXCEPTIONS_H
00004 #define EXCEPTIONS_H
00005
00006 #include <iostream.h>
00007 #include "misc.h"
00008
00009 template<class E, class A> inline void Assert(A assertion)
00010 { if (!assertion) throw E(); };
00011
00012 class Fatal_error
00013 {
00014 char msg_error[256];
00015 public:
00016 Fatal_error()
00017 {
00018 char* msg = "This is an error. Guess who have generated it?";
00019 memcpy(msg_error, msg, 256*sizeof(char));
00020 }
00021 Fatal_error(char* msg)
00022 { memcpy(msg_error, msg, 256*sizeof(char));}
00023 void print()
00024 { ERROR(msg_error); };
00025 void print(char *msg)
00026 {
00027 ERROR(msg_error);
00028 ERROR(msg);
00029 };
00030 };
00031
00032 class Warning
00033 {
00034 char msg_error[256];
00035 public:
00036 Warning()
00037 {
00038 char* msg = "This is an warning. Guess who have generated it?";
00039 memcpy(msg_error, msg, 256*sizeof(char));
00040 }
00041 Warning(char* msg)
00042 { memcpy(msg_error, msg, 256*sizeof(char));}
00043 void print()
00044 { ERROR(msg_error); };
00045 void print(char *msg)
00046 {
00047 ERROR(msg_error);
00048 ERROR(msg);
00049 };
00050 };
00051 #endif
00052