15 #ifndef ECL_EXCEPTIONS_DATA_EXCEPTION_HPP_ 16 #define ECL_EXCEPTIONS_DATA_EXCEPTION_HPP_ 23 #ifndef ECL_DISABLE_EXCEPTIONS 31 #include <ecl/errors/handlers.hpp> 33 #include <ecl/errors/macros.hpp> 57 template <
typename Data>
58 class DataException :
public Exception
63 DataException(
const char* loc,
const DataException<Data> &e );
67 const char*
what()
const throw();
87 template <
typename Data>
100 template <
typename Data>
113 template <
typename Data>
116 error_type(e.flag()),
117 error_data(e.data()),
120 location = std::string(loc) +
"\n : " + e.location;
127 template <
typename Data>
130 std::string what_msg;
132 std::ostringstream stream;
133 stream <<
"\n" <<
"Location : " << this->location <<
"\n";
134 stream <<
"Flag : " << Error(error_type).what() <<
"\n";
135 if ( message.size() > 0 ) {
136 stream <<
"Detail : " << message <<
"\n";
138 stream <<
"Data : " << error_data <<
"\n";
139 what_msg = stream.str();
140 return what_msg.c_str();
Pre-processed macro definitions that define the target platform.
const Data & data() const
DataException(const char *loc, ErrorFlag error, Data &d)
const ErrorFlag & flag() const
const char * what() const