00001
00002
00003 #ifndef FILTER_EXCEPTION_HPP
00004 #define FILTER_EXCEPTION_HPP
00005
00006 #include "kernel/jafarException.hpp"
00007
00008 namespace jafar {
00009
00010 namespace filter {
00011
00017 class FilterException : public jafar::kernel::Exception {
00018
00019 public:
00020
00024 enum ExceptionId {
00025 INVALID_SOFT_RESIZE,
00026 INCONSISTENT_UPDATE
00027 };
00028
00038 FilterException(ExceptionId id_,
00039 const std::string& message_,
00040 const std::string& file_, int line_) throw();
00041
00042 virtual ~FilterException() throw();
00043
00044 ExceptionId getExceptionId() const throw();
00045
00046 protected:
00047
00048 ExceptionId id;
00049
00050 static std::string exceptionIdToString(ExceptionId id_) throw();
00051
00052 };
00053
00059 class InconsistentUpdateException : public FilterException {
00060
00061 public:
00062
00063 InconsistentUpdateException(double mahalanobisDistance_,
00064 double chi2Threshold_,
00065 const std::string& message_,
00066 const std::string& file_, int line_) throw() :
00067 FilterException(INCONSISTENT_UPDATE, message_, file_, line_),
00068 mahalanobisDistance(mahalanobisDistance_),
00069 chi2Threshold(chi2Threshold_)
00070 {}
00071
00072 virtual ~InconsistentUpdateException() throw() {}
00073
00074 double mahalanobisDistance;
00075 double chi2Threshold;
00076
00077 };
00078
00079 }
00080 }
00081
00082 #endif // FILTER_EXCEPTION_HPP
00083