CMS 3D CMS Logo

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 namespace edm {
16  namespace errors {
17 
18  // If you add a new entry to the set of values, make sure to
19  // update the translation map in EDMException.cc, the actions
20  // table in FWCore/Framework/src/Actions.cc, and the configuration
21  // fragment FWCore/Framework/python/test/cmsExceptionsFatalOption_cff.py.
22 
23  enum ErrorCodes {
27 
28  OtherCMS = 8001,
29  StdException = 8002,
30  Unknown = 8003,
31  BadAlloc = 8004,
33 
36  InsertFailure = 8008,
37  Configuration = 8009,
38  LogicError = 8010,
43  EventTimeout = 8015,
45 
48 
50  FileOpenError = 8020,
51  FileReadError = 8021,
54 
57 
58  NotFound = 8026,
61 
65 
67 
68  CaughtSignal = 9000
69  };
70 
71  }
72 
74  public:
76 
77  explicit Exception(Code category);
78 
79  Exception(Code category, std::string const& message);
80  Exception(Code category, char const* message);
81 
82  Exception(Code category, std::string const& message, cms::Exception const& another);
83  Exception(Code category, char const* message, cms::Exception const& another);
84 
85  Exception(Exception const& other);
86 
87  ~Exception() noexcept override;
88 
89  void swap(Exception& other) {
90  std::swap(category_, other.category_);
91  }
92 
93  Exception& operator=(Exception const& other);
94 
95  Code categoryCode() const { return category_; }
96 
97  static const std::string& codeToString(Code);
98 
99  static void throwThis(Code category,
100  char const* message0 = "",
101  char const* message1 = "",
102  char const* message2 = "",
103  char const* message3 = "",
104  char const* message4 = "");
105  static void throwThis(Code category, char const* message0, int intVal, char const* message2 = "");
106 
107  Exception* clone() const override;
108 
109  private:
110 
111  void rethrow() override;
112  int returnCode_() const override;
113 
114  Code category_;
115  };
116 }
117 
118 #endif
Code categoryCode() const
Definition: EDMException.h:95
errors::ErrorCodes Code
Definition: EDMException.h:75
#define noexcept
#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
HLT enums.
Definition: errors.py:1