Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 10:01:10

0001 #ifndef HEPMC_IO_EXCEPTION_H
0002 #define HEPMC_IO_EXCEPTION_H
0003 // ----------------------------------------------------------------------
0004 //
0005 // IO_Exception.h
0006 // Author:  Lynn Garren
0007 //
0008 // IO exception handling
0009 // IO_GenEvent, etc. catch the throw and set data members with the error type and message 
0010 // Some of the messages are constructed with transient information 
0011 //      (e.g., contents of a bad GenParticle)
0012 //
0013 // ----------------------------------------------------------------------
0014 
0015 
0016 
0017 #include <stdexcept>
0018  
0019 namespace HepMC {
0020 
0021 //! IO exception handling
0022 
0023 ///
0024 /// \class  IO_Exception
0025 /// IO_GenEvent, etc. catch the throw and set data members with the error type and message 
0026 /// Some of the messages are constructed with transient information 
0027 ///      (e.g., contents of a bad GenParticle)
0028 class IO_Exception : public std::runtime_error {
0029 public:
0030   IO_Exception(const std::string & msg) 
0031   : std::runtime_error(msg) { }
0032 
0033   /// IO error types
0034   enum ErrorType{ OK,
0035                   NullEvent, 
0036                   WrongFileType, 
0037                   MissingStartKey, 
0038           EndOfStream, 
0039           EndKeyMismatch, 
0040           MissingEndKey, 
0041           InvalidData,
0042                   InputAndOutput,
0043           BadOutputStream,
0044           BadInputStream };
0045 
0046 };
0047 
0048 }   // namespace HepMC
0049 
0050 #endif // HEPMC_IO_EXCEPTION_H