Zero  0.1.0
exception.hpp
Go to the documentation of this file.
1 #ifndef ZERO_COMMON_EXCEPTION_HPP
2 #define ZERO_COMMON_EXCEPTION_HPP
3 
4 #include <stdexcept>
5 
6 #include "w_defines.h"
7 
8 #define throw0(condition, exception) do { \
9  if (condition) \
10  throw exception; \
11 } while(0)
12 
13 #ifndef W_DEBUG_LEVEL
14 #define W_DEBUG_LEVEL
15 #endif
16 
17 #if W_DEBUG_LEVEL >= 1
18 #define throw1(condition, exception) throw0(condition, exception)
19 #else
20 #define throw1(condition, exception) if (false) { (void)(condition); }
21 #endif
22 
23 #if W_DEBUG_LEVEL >= 2
24 #define throw2(condition, exception) throw1(condition, exception)
25 #else
26 #define throw2(condition, exception) if (false) { (void)(condition); }
27 #endif
28 
29 #if W_DEBUG_LEVEL >= 3
30 #define throw3(condition, exception) throw2(condition, exception)
31 #else
32 #define throw3(condition, exception) if (false) { (void)(condition); }
33 #endif
34 
35 #if W_DEBUG_LEVEL >= 4
36 #define throw4(condition, exception) throw3(condition, exception)
37 #else
38 #define throw4(condition, exception) if (false) { (void)(condition); }
39 #endif
40 
41 #if W_DEBUG_LEVEL >= 5
42 #define throw5(condition, exception) throw4(condition, exception)
43 #else
44 #define throw5(condition, exception) if (false) { (void)(condition); }
45 #endif
46 
47 #define throw9(condition, exception) if (false) { (void)(condition); }
48 
49 namespace zero {
50  class RuntimeException : public std::runtime_error {
51  public:
52  RuntimeException(std::string const& message) :
53  std::runtime_error(message) {};
54  };
55 }
56 
57 #endif // ZERO_COMMON_EXCEPTION_HPP
STL namespace.
RuntimeException(std::string const &message)
Definition: exception.hpp:52
Definition: exception.hpp:50
Definition: exception.hpp:49