Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   Related Pages  

exception.h

Go to the documentation of this file.
00001 /* -*- c++ -*- */
00002 #ifndef AKAXISO2_EXCEPTION_H__
00003 #define AKAXISO2_EXCEPTION_H__
00004 
00010 #include <exception>
00011 #include <string>
00012 
00013 namespace aka2 {
00014   
00021   struct error : public std::exception {
00027     explicit error(const std::string &msg, const char *file, const unsigned long line);
00028     virtual ~error() throw();
00029     virtual const char *what() const throw();
00030   protected:
00031     error() {}
00032     std::string msg_;
00033   };
00034 
00035 
00036   struct positioned_error : error {
00037     explicit positioned_error(const std::string &msg, 
00038                               const char *file, const unsigned long file_line,
00039                               const std::string &path = std::string(),
00040                               const std::string &source = std::string(), 
00041                               long line = -1, long column = -1);
00042     positioned_error(const error &e);
00043     positioned_error(const positioned_error &e);
00044     void set_position(const std::string &source, long line, long column); 
00045     virtual ~positioned_error() throw();
00046     virtual const char *what() const throw();
00047   private:
00048     std::string source_;
00049     std::string path_;
00050     long line_;
00051     long column_;
00052     mutable std::string positioned_msg_;
00053   };
00054 
00055 
00056   struct tagged_error : public error {
00057     explicit tagged_error(const std::string &caption, 
00058                           const std::string &tagname,
00059                           const std::string &msg, 
00060                           const char *file, const unsigned long line);
00061     virtual ~tagged_error() throw();
00062   };
00063 
00064 }
00065 
00066 #endif

Generated on Sun Dec 19 22:58:57 2004 for akaxiso2 by doxygen1.2.18