10 #ifndef __SOT_ABSTRACT_EXCEPTION_H
11 #define __SOT_ABSTRACT_EXCEPTION_H
48 PATTERN_GENERATOR = 800
53 return EXCEPTION_NAME;
76 const std::string &getStringMessage(
void);
81 const char *getMessage(
void);
82 const char *what()
const throw();
88 #ifdef SOT_EXCEPTION_PASSING_PARAM
94 const char *functionPTR;
95 char function[BUFFER_SIZE];
98 char file[BUFFER_SIZE];
99 bool pointersSet,
set;
102 Param(
const size_type &_line,
const char *_function,
const char *_file);
103 Param(
void) : pointersSet(false),
set(false) {}
104 Param &initCopy(
const Param &p);
111 friend const Exc &
operator+(
const ExceptionAbstract::Param &p,
const Exc &e) {
116 friend Exc &
operator+(
const ExceptionAbstract::Param &p, Exc &e) {
120 #endif // #ifdef SOT_EXCEPTION_PASSING_PARAM
123 #define SOT_RETHROW \
124 (const ExceptionAbstract &err) { throw err; }
126 #ifdef SOT_EXCEPTION_PASSING_PARAM
128 throw ExceptionAbstract::Param(__LINE__, __FUNCTION__, __FILE__) +
129 #else // #ifdef SOT_EXCEPTION_PASSING_PARAM
130 #define SOT_THROW throw
131 #endif // #ifdef SOT_EXCEPTION_PASSING_PARAM