CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
EDMException.h
Go to the documentation of this file.
1 #ifndef FWCore_Utilities_EDMException_h
2 #define FWCore_Utilities_EDMException_h
3 
12 #include <map>
13 #include <string>
14 
15 #define EDM_MAP_ENTRY(map, ns, name) map[ns::name]=#name
16 #define EDM_MAP_ENTRY_NONS(map, name) map[name]=#name
17 
18 namespace edm {
19  namespace errors {
20 
21  // If you add a new entry to the set of values, make sure to
22  // update the translation map in EDMException.cc, the actions
23  // table in FWCore/Framework/src/Actions.cc, and the configuration
24  // fragment FWCore/Framework/python/test/cmsExceptionsFatalOption_cff.py.
25 
26  enum ErrorCodes {
30 
31  OtherCMS = 8001,
32  StdException = 8002,
33  Unknown = 8003,
34  BadAlloc = 8004,
36 
39  InsertFailure = 8008,
40  Configuration = 8009,
41  LogicError = 8010,
46  EventTimeout = 8015,
48 
51 
53  FileOpenError = 8020,
54  FileReadError = 8021,
57 
60 
61  NotFound = 8026,
64 
68 
69  CaughtSignal = 9000
70  };
71 
72  }
73 
75  public:
77 
78  explicit Exception(Code category);
79 
81  Exception(Code category, char const* message);
82 
83  Exception(Code category, std::string const& message, cms::Exception const& another);
84  Exception(Code category, char const* message, cms::Exception const& another);
85 
86  Exception(Exception const& other);
87 
88  virtual ~Exception() throw();
89 
90  void swap(Exception& other) {
91  std::swap(category_, other.category_);
92  }
93 
94  Exception& operator=(Exception const& other);
95 
96  Code categoryCode() const { return category_; }
97 
98  static std::string codeToString(Code);
99 
100  typedef std::map<Code, std::string> CodeMap;
101 
102  static void throwThis(Code category,
103  char const* message0 = "",
104  char const* message1 = "",
105  char const* message2 = "",
106  char const* message3 = "",
107  char const* message4 = "");
108  static void throwThis(Code category, char const* message0, int intVal, char const* message2 = "");
109 
110  virtual Exception* clone() const;
111 
112  private:
113 
114  virtual void rethrow();
115  virtual int returnCode_() const;
116 
118  };
119 }
120 
121 #endif
Code categoryCode() const
Definition: EDMException.h:96
errors::ErrorCodes Code
Definition: EDMException.h:76
#define dso_export
void swap(Association< C > &lhs, Association< C > &rhs)
Definition: Association.h:116
void swap(edm::DataFrameContainer &lhs, edm::DataFrameContainer &rhs)
TEveGeoShape * clone(const TEveElement *element, TEveElement *parent)
Definition: eve_macros.cc:135
std::map< Code, std::string > CodeMap
Definition: EDMException.h:100