00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef __MDW_ERROR_H_
00022 #define __MDW_ERROR_H_
00023
00024 #include <iostream>
00025 #include <stdlib.h>
00026 #include <sstream>
00027 #include <string.h>
00028
00029 #include "Exception.h"
00030
00031 namespace mdw
00032 {
00033 class ErrorException : public mdw::Exception
00034 {
00035 public:
00036 ErrorException() throw () {}
00037 ~ErrorException() throw () {}
00038 ErrorException (const ErrorException& other) throw () {}
00039 ErrorException (const std::string &error) throw () : Exception(error) {}
00040 };
00041 }
00042
00043 #define ERROR(a) { std::ostringstream aRes; aRes << a; throw mdw::ErrorException(aRes.str()); }
00044 #define ERROR_ERRNO(a, e) {char buff[1024]; char * res = strerror_r(e, buff, 1024); std::ostringstream aRes; \
00045 aRes << a << " : " << res; throw mdw::ErrorException(aRes.str()); }
00046 #endif