File indexing completed on 2024-10-19 04:58:26
0001 #ifndef FWCore_Utilities_EDMException_h
0002 #define FWCore_Utilities_EDMException_h
0003
0004
0005
0006
0007
0008
0009
0010
0011 #include "FWCore/Utilities/interface/Exception.h"
0012 #include <map>
0013 #include <string>
0014
0015 namespace edm {
0016 namespace errors {
0017
0018
0019
0020
0021
0022 enum ErrorCodes {
0023 CommandLineProcessing = 7000,
0024 ConfigFileNotFound = 7001,
0025 ConfigFileReadError = 7002,
0026
0027 OtherCMS = 8001,
0028 StdException = 8002,
0029 Unknown = 8003,
0030 BadAlloc = 8004,
0031 BadExceptionType = 8005,
0032
0033 ProductNotFound = 8006,
0034 DictionaryNotFound = 8007,
0035 InsertFailure = 8008,
0036 Configuration = 8009,
0037 LogicError = 8010,
0038 UnimplementedFeature = 8011,
0039 InvalidReference = 8012,
0040 NullPointerError = 8013,
0041 NoProductSpecified = 8014,
0042 EventTimeout = 8015,
0043 EventCorruption = 8016,
0044
0045 ScheduleExecutionFailure = 8017,
0046 EventProcessorFailure = 8018,
0047
0048 FileInPathError = 8019,
0049 FileOpenError = 8020,
0050 FileReadError = 8021,
0051 FatalRootError = 8022,
0052 MismatchedInputFiles = 8023,
0053
0054 ProductDoesNotSupportViews = 8024,
0055 ProductDoesNotSupportPtr = 8025,
0056
0057 NotFound = 8026,
0058 FormatIncompatibility = 8027,
0059 FallbackFileOpenError = 8028,
0060 NoSecondaryFiles = 8029,
0061
0062 ExceededResourceVSize = 8030,
0063 ExceededResourceRSS = 8031,
0064 ExceededResourceTime = 8032,
0065
0066 FileWriteError = 8033,
0067
0068 FileNameInconsistentWithGUID = 8034,
0069
0070 UnavailableAccelerator = 8035,
0071 ExternalFailure = 8036,
0072
0073 EventGenerationFailure = 8501,
0074
0075 UnexpectedJobTermination = 8901,
0076
0077 CaughtSignal = 9000
0078 };
0079
0080 }
0081
0082 class dso_export Exception : public cms::Exception {
0083 public:
0084 typedef errors::ErrorCodes Code;
0085
0086 explicit Exception(Code category);
0087
0088 Exception(Code category, std::string const& message);
0089 Exception(Code category, char const* message);
0090
0091 Exception(Code category, std::string const& message, cms::Exception const& another);
0092 Exception(Code category, char const* message, cms::Exception const& another);
0093
0094 Exception(Exception const& other);
0095
0096 ~Exception() noexcept override;
0097
0098 void swap(Exception& other) { std::swap(category_, other.category_); }
0099
0100 Exception& operator=(Exception const& other);
0101
0102 Code categoryCode() const { return category_; }
0103
0104 static const std::string& codeToString(Code);
0105
0106 [[noreturn]] static void throwThis(Code category,
0107 char const* message0 = "",
0108 char const* message1 = "",
0109 char const* message2 = "",
0110 char const* message3 = "",
0111 char const* message4 = "");
0112 [[noreturn]] static void throwThis(Code category, char const* message0, int intVal, char const* message2 = "");
0113
0114 Exception* clone() const override;
0115
0116 private:
0117 [[noreturn]] void rethrow() override;
0118 int returnCode_() const override;
0119
0120 Code category_;
0121 };
0122 }
0123
0124 #endif