00001 #ifndef MAPSEXCEPTION_HH_ 00002 #define MAPSEXCEPTION_HH_ 00003 #include <string> 00004 #include <exception> 00005 00006 /** MapsException.hh 00007 * 00008 * Jamie Ballin, Imperial College London 00009 * February 2008 00010 * 00011 * General exception for something's gone gaga! 00012 * 00013 * The author chooses to throw exceptions when a method is asked to do something 00014 * that should never be asked of it, or it cannot adhere to its "advertised contract". 00015 * 00016 * I wish I could be writing Java. Woe is me. 00017 */ 00018 class MapsException : public std::exception 00019 { 00020 public: 00021 MapsException(const std::string& aErrorDescription=""); 00022 virtual ~MapsException() throw() {}; 00023 const char* what() const throw(); 00024 protected: 00025 std::string myDescription; 00026 }; 00027 00028 #endif /*MAPSEXCEPTION_HH_*/