00001
00002 #ifndef MIX_DOMEXCEPTION_H_
00003 #define MIX_DOMEXCEPTION_H_
00004
00005 #include <exception>
00006 #include "misc.h"
00007 #include "classes.h"
00008
00009 namespace MiX{
00015 template <class charT,class traitsT>
00016 class DOM_Exception : public std::exception{
00017 public:
00018 MiX_Template_Typedef(charT,traitsT);
00019 private:
00020 const node_type* node_;
00021 ErrorType type_;
00022 std::string data_;
00023 public:
00025 DOM_Exception(const node_type* node,ErrorType type,const std::string& data)
00026 : node_(node),type_(type),data_(data){ };
00028 virtual ~DOM_Exception() throw(){ };
00030 const char* what()const throw(){ return data_.c_str(); }
00032 const node_type* getNode()const throw(){ return node_; }
00034 ErrorType getType() const throw() { return type_; };
00035 };
00036 }
00037
00038 #endif