00001 // $Id: MaterialException.h,v 1.5 2003/04/25 08:52:23 sponce Exp $ 00002 #ifndef DETDESC_MATERIALEXCEPTION_H 00003 #define DETDESC_MATERIALEXCEPTION_H 00005 #include "GaudiKernel/GaudiException.h" 00007 #include <iostream> 00008 #include <exception> 00009 // 00010 class Material; 00011 class MSgStream; 00013 00015 class MaterialException: public GaudiException 00016 { 00018 public: 00020 MaterialException( const std::string & message , 00021 const Material * mat = 0 ); 00023 MaterialException( const std::string & message , 00024 const GaudiException & Exception , 00025 const Material * mat = 0 ); 00027 MaterialException( const MaterialException& ); 00029 virtual ~MaterialException() throw(); 00031 virtual std::ostream& printOut ( std::ostream& os = std::cerr ) const; 00032 virtual MsgStream& printOut ( MsgStream& os ) const; 00034 virtual inline GaudiException* clone() const { 00035 return new MaterialException( *this ); 00036 } 00038 private: 00040 const Material* m_me_mat; 00042 }; 00044 00045 #endif // DETDESC_MATERIALEXCEPTION_H