Main Page   Modules   Class Hierarchy   Compound List   File List   Compound Members   Related Pages   Examples  

Exceptions.h

00001 /* Copyright (c) 2001 S.E. Grigorescu */
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