HepMC3 event record library
Errors.h
Go to the documentation of this file.
1 // -*- C++ -*-
2 //
3 // This file is part of HepMC
4 // Copyright (C) 2014-2019 The HepMC collaboration (see AUTHORS for details)
5 /**
6  * @file Errors.h
7  * @brief Implementation of error and warning macros
8  *
9  */
10 #ifndef HEPMC3_ERRORS_H
11 #define HEPMC3_ERRORS_H
12 
13 #include <iostream>
14 #include <stdexcept>
15 
16 namespace HepMC3 {
17 
18 
19 /// @name Printing macros
20 //@{
21 
22 /** @brief Macro for printing error messages */
23 #define ERROR(MESSAGE) if ( Setup::print_errors() ) { std::cerr << "ERROR::" << MESSAGE << std::endl; }
24 
25 /** @brief Macro for printing warning messages */
26 #define WARNING(MESSAGE) if ( Setup::print_warnings() ) { std::cout << "WARNING::" << MESSAGE << std::endl; }
27 
28 // Debug messages and code that will not go to the release version
29 #ifndef HEPMC3_RELEASE_VERSION
30 
31 /** @brief Macro for printing debug messages with appropriate debug level */
32 #define DEBUG(LEVEL,MESSAGE) if( Setup::debug_level()>=(LEVEL) ) { std::cout << "DEBUG(" << LEVEL <<")::" << MESSAGE << std::endl; }
33 /** @brief Macro for storing code useful for debugging */
34 #define DEBUG_CODE_BLOCK( x ) x
35 
36 #else
37 
38 #define DEBUG( x,y )
39 #define DEBUG_CODE_BLOCK( x )
40 
41 #endif
42 
43 //@}
44 
45 
46 /// @name Exceptions
47 //@{
48 
49 /// @class Exception
50 /// @brief Standard runtime error
51 struct Exception : public std::runtime_error {
52  Exception(const std::string& msg) : std::runtime_error(msg) {} ///< Default constructor
53 };
54 
55 /// @brief Exception related to weight lookups, setting, and index consistency
56 struct WeightError : public Exception {
57  WeightError(const std::string& msg) : Exception(msg) {} ///< Default constructor
58 };
59 
60 //@}
61 
62 
63 } // namespace HepMC3
64 
65 #endif
HepMC3 main namespace.
Definition: ReaderGZ.h:28
STL namespace.
Exception related to weight lookups, setting, and index consistency.
Definition: Errors.h:56
Exception(const std::string &msg)
Default constructor.
Definition: Errors.h:52
Standard runtime error.
Definition: Errors.h:51
WeightError(const std::string &msg)
Default constructor.
Definition: Errors.h:57