• Main Page
  • Related Pages
  • Namespaces
  • Classes
  • Files
  • Directories
  • File List
  • File Members

exception.hpp

Go to the documentation of this file.
00001 /*
00002     CLAW - a C++ Library Absolutely Wonderful
00003 
00004     CLAW is a free library without any particular aim but being useful to 
00005     anyone.
00006 
00007     Copyright (C) 2005-2008 Julien Jorge
00008 
00009     This library is free software; you can redistribute it and/or
00010     modify it under the terms of the GNU Lesser General Public
00011     License as published by the Free Software Foundation; either
00012     version 2.1 of the License, or (at your option) any later version.
00013 
00014     This library is distributed in the hope that it will be useful,
00015     but WITHOUT ANY WARRANTY; without even the implied warranty of
00016     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00017     Lesser General Public License for more details.
00018 
00019     You should have received a copy of the GNU Lesser General Public
00020     License along with this library; if not, write to the Free Software
00021     Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
00022 
00023     contact: julien_jorge@yahoo.fr
00024 */
00030 #ifndef __CLAW_EXCEPTION_HPP__
00031 #define __CLAW_EXCEPTION_HPP__
00032 
00033 #include <exception>
00034 #include <string>
00035 
00036 namespace claw
00037 {
00042   class exception : public std::exception
00043   {
00044   public:
00049     exception( const std::string& msg ) throw()
00050       : m_msg(msg)
00051     { }
00052 
00054     ~exception() throw() {}
00055 
00057     const char* what() const throw() { return m_msg.c_str(); }
00058 
00059   private:
00061     const std::string m_msg;
00062 
00063   }; // class exception
00064   
00069   class bad_format : public exception
00070   {
00071   public:
00076     bad_format( const std::string& msg ) throw()
00077       : exception(msg)
00078     { }
00079   }; // class bad_format
00080 
00081 } // namespace claw
00082 
00088 #define CLAW_EXCEPTION( m )                                     \
00089   claw::exception( std::string(__FUNCTION__) + ": " + m )
00090 
00091 #endif // __CLAW_EXCEPTION_HPP__

Generated on Wed Sep 29 2010 for CLAW Library (a C++ Library Absolutely Wonderful) by  doxygen 1.7.1