00001 //$Id: ParamException.h,v 1.2 2006/01/19 08:51:54 marcocle Exp $ 00002 #ifndef DETDESC_PARAMEXCEPTION_H 00003 #define DETDESC_PARAMEXCEPTION_H 1 00004 00005 #include <typeinfo> 00006 00007 // Base class 00008 #include "GaudiKernel/GaudiException.h" 00009 00011 //-------------------------------------------------------------------------- 00019 00020 class ParamException : public GaudiException { 00021 00022 public: 00023 00025 enum ExceptionType { 00026 BAD_KEY, 00027 BAD_TYPE 00028 }; 00029 00031 ParamException( const std::string& name , ExceptionType t=BAD_KEY ); 00032 00034 ParamException( const std::string& name , const std::type_info &req, const std::type_info &actual ); 00035 00037 virtual ~ParamException() throw(); 00038 00040 inline ExceptionType type() const { return m_type; } 00041 00042 private: 00043 00045 ExceptionType m_type; 00046 00047 }; 00048 00049 #endif // DETDESC_PARAMEXCEPTION_H 00050 00051 00052 00053 00054 00055 00056 00057 00058 00059 00060 00061