00001
00002
00003 #ifndef RTSLAM_RTSLAM_EXCEPTION_HPP
00004 #define RTSLAM_RTSLAM_EXCEPTION_HPP
00005
00006 #include "kernel/jafarException.hpp"
00007
00008 namespace jafar {
00009 namespace rtslam {
00010
00016 class RtslamException: public ::jafar::kernel::Exception {
00017
00018 public:
00019
00023 enum ExceptionId {
00024 UNKNOWN_FEATURE_TYPE,
00025 UNKNOWN_SENSOR_TYPE,
00026 UNKNOWN_DETECTION_METHOD,
00027 UNKNOWN_MATCHING_METHOD,
00028 UNKNOWN_TYPES_FOR_FACTORY,
00029 BUFFER_OVERFLOW,
00030 SIMU_ERROR,
00031 MISSING_DEPENDENCY,
00032 NO_SENSOR_DATA,
00033 GENERIC_ERROR
00034
00035 };
00036
00046 RtslamException(ExceptionId id_, const std::string& message_,
00047 const std::string& file_, int line_) throw ();
00048
00049 virtual ~RtslamException() throw ();
00050
00051 ExceptionId getExceptionId() const throw ();
00052
00053 protected:
00054
00055 ExceptionId id;
00056
00057 static std::string exceptionIdToString(ExceptionId id_) throw ();
00058
00059 };
00060
00061 }
00062 }
00063
00064 #endif // RTSLAM_RTSLAM_EXCEPTION_HPP