USRP Hardware Driver and USRP Manual  Version: 4.1.0.4-3
UHD and USRP Manual
exception.hpp
Go to the documentation of this file.
1 //
2 // Copyright 2010-2011 Ettus Research LLC
3 // Copyright 2018 Ettus Research, a National Instruments Company
4 //
5 // SPDX-License-Identifier: GPL-3.0-or-later
6 //
7 
8 #pragma once
9 
10 #include <uhd/config.hpp>
11 #include <boost/current_function.hpp>
12 #include <stdexcept>
13 #include <string>
14 
32 namespace uhd {
33 
36 struct UHD_API exception : std::runtime_error
37 {
38  exception(const std::string& what);
39  virtual unsigned code(void) const = 0;
40  virtual exception* dynamic_clone(void) const = 0;
41  virtual void dynamic_throw(void) const = 0;
42 };
43 
49 {
50  assertion_error(const std::string& what);
51  unsigned code(void) const override;
52  assertion_error* dynamic_clone(void) const override;
53  void dynamic_throw(void) const override;
54 };
55 
60 {
61  lookup_error(const std::string& what);
62  unsigned code(void) const override;
63  lookup_error* dynamic_clone(void) const override;
64  void dynamic_throw(void) const override;
65 };
66 
70 {
71  index_error(const std::string& what);
72  unsigned code(void) const override;
73  index_error* dynamic_clone(void) const override;
74  void dynamic_throw(void) const override;
75 };
76 
83 {
84  key_error(const std::string& what);
85  unsigned code(void) const override;
86  key_error* dynamic_clone(void) const override;
87  void dynamic_throw(void) const override;
88 };
89 
97 {
98  type_error(const std::string& what);
99  unsigned code(void) const override;
100  type_error* dynamic_clone(void) const override;
101  void dynamic_throw(void) const override;
102 };
103 
109 {
110  value_error(const std::string& what);
111  unsigned code(void) const override;
112  value_error* dynamic_clone(void) const override;
113  void dynamic_throw(void) const override;
114 };
115 
122 {
123  narrowing_error(const std::string& what);
124  unsigned code(void) const override;
125  narrowing_error* dynamic_clone(void) const override;
126  void dynamic_throw(void) const override;
127 };
128 
133 {
134  runtime_error(const std::string& what);
135  unsigned code(void) const override;
136  runtime_error* dynamic_clone(void) const override;
137  void dynamic_throw(void) const override;
138 };
139 
143 {
144  int _code;
145  usb_error(int code, const std::string& what);
146  unsigned code(void) const override
147  {
148  return _code;
149  };
150  usb_error* dynamic_clone(void) const override;
151  void dynamic_throw(void) const override;
152 };
153 
158 {
159  not_implemented_error(const std::string& what);
160  unsigned code(void) const override;
161  not_implemented_error* dynamic_clone(void) const override;
162  void dynamic_throw(void) const override;
163 };
164 
169 {
170  access_error(const std::string& what);
171  unsigned code(void) const override;
172  access_error* dynamic_clone(void) const override;
173  void dynamic_throw(void) const override;
174 };
175 
179 {
180  environment_error(const std::string& what);
181  unsigned code(void) const override;
182  environment_error* dynamic_clone(void) const override;
183  void dynamic_throw(void) const override;
184 };
185 
189 {
190  io_error(const std::string& what);
191  unsigned code(void) const override;
192  io_error* dynamic_clone(void) const override;
193  void dynamic_throw(void) const override;
194 };
195 
199 {
200  os_error(const std::string& what);
201  unsigned code(void) const override;
202  os_error* dynamic_clone(void) const override;
203  void dynamic_throw(void) const override;
204 };
205 
209 {
210  system_error(const std::string& what);
211  unsigned code(void) const override;
212  system_error* dynamic_clone(void) const override;
213  void dynamic_throw(void) const override;
214 };
215 
221 {
222  syntax_error(const std::string& what);
223  unsigned code(void) const override;
224  syntax_error* dynamic_clone(void) const override;
225  void dynamic_throw(void) const override;
226 };
227 
231 {
232  rfnoc_error(const std::string& what);
233  unsigned code(void) const override;
234  rfnoc_error* dynamic_clone(void) const override;
235  void dynamic_throw(void) const override;
236 };
237 
241 {
242  op_failed(const std::string& what);
243  unsigned code(void) const override;
244  op_failed* dynamic_clone(void) const override;
245  void dynamic_throw(void) const override;
246 };
247 
252 {
253  op_timeout(const std::string& what);
254  unsigned code(void) const override;
255  op_timeout* dynamic_clone(void) const override;
256  void dynamic_throw(void) const override;
257 };
258 
262 {
263  op_seqerr(const std::string& what);
264  unsigned code(void) const override;
265  op_seqerr* dynamic_clone(void) const override;
266  void dynamic_throw(void) const override;
267 };
268 
272 {
273  op_timerr(const std::string& what);
274  unsigned code(void) const override;
275  op_timerr* dynamic_clone(void) const override;
276  void dynamic_throw(void) const override;
277 };
278 
282 {
283  resolve_error(const std::string& what);
284  unsigned code(void) const override;
285  resolve_error* dynamic_clone(void) const override;
286  void dynamic_throw(void) const override;
287 };
288 
292 {
293  routing_error(const std::string& what);
294  unsigned code(void) const override;
295  routing_error* dynamic_clone(void) const override;
296  void dynamic_throw(void) const override;
297 };
298 
305 #define UHD_THROW_SITE_INFO(what) \
306  std::string(std::string(what) + "\n" + " in " + std::string(BOOST_CURRENT_FUNCTION) \
307  + "\n" + " at " + std::string(__FILE__) + ":" \
308  + BOOST_STRINGIZE(__LINE__) + "\n")
309 
314 #define UHD_THROW_INVALID_CODE_PATH() \
315  throw uhd::system_error(UHD_THROW_SITE_INFO("invalid code path"))
316 
322 #define UHD_ASSERT_THROW(code) \
323  { \
324  if (not(code)) \
325  throw uhd::assertion_error(UHD_THROW_SITE_INFO(#code)); \
326  }
327 
328 } // namespace uhd
#define UHD_API
Definition: config.h:70
Definition: build_info.hpp:12
Definition: exception.hpp:169
void dynamic_throw(void) const override
unsigned code(void) const override
access_error * dynamic_clone(void) const override
access_error(const std::string &what)
Definition: exception.hpp:49
assertion_error(const std::string &what)
unsigned code(void) const override
assertion_error * dynamic_clone(void) const override
void dynamic_throw(void) const override
Definition: exception.hpp:179
environment_error(const std::string &what)
void dynamic_throw(void) const override
unsigned code(void) const override
environment_error * dynamic_clone(void) const override
Definition: exception.hpp:37
virtual exception * dynamic_clone(void) const =0
exception(const std::string &what)
virtual void dynamic_throw(void) const =0
virtual unsigned code(void) const =0
Definition: exception.hpp:70
void dynamic_throw(void) const override
index_error(const std::string &what)
unsigned code(void) const override
index_error * dynamic_clone(void) const override
Definition: exception.hpp:189
io_error(const std::string &what)
void dynamic_throw(void) const override
unsigned code(void) const override
io_error * dynamic_clone(void) const override
Definition: exception.hpp:83
key_error(const std::string &what)
void dynamic_throw(void) const override
key_error * dynamic_clone(void) const override
unsigned code(void) const override
Definition: exception.hpp:60
lookup_error * dynamic_clone(void) const override
unsigned code(void) const override
void dynamic_throw(void) const override
lookup_error(const std::string &what)
Definition: exception.hpp:122
narrowing_error * dynamic_clone(void) const override
void dynamic_throw(void) const override
narrowing_error(const std::string &what)
unsigned code(void) const override
Definition: exception.hpp:158
not_implemented_error(const std::string &what)
unsigned code(void) const override
void dynamic_throw(void) const override
not_implemented_error * dynamic_clone(void) const override
Definition: exception.hpp:241
op_failed * dynamic_clone(void) const override
unsigned code(void) const override
op_failed(const std::string &what)
void dynamic_throw(void) const override
Definition: exception.hpp:262
void dynamic_throw(void) const override
op_seqerr * dynamic_clone(void) const override
op_seqerr(const std::string &what)
unsigned code(void) const override
Definition: exception.hpp:252
op_timeout(const std::string &what)
op_timeout * dynamic_clone(void) const override
unsigned code(void) const override
void dynamic_throw(void) const override
Definition: exception.hpp:272
op_timerr(const std::string &what)
op_timerr * dynamic_clone(void) const override
void dynamic_throw(void) const override
unsigned code(void) const override
Definition: exception.hpp:199
os_error * dynamic_clone(void) const override
void dynamic_throw(void) const override
unsigned code(void) const override
os_error(const std::string &what)
Definition: exception.hpp:282
void dynamic_throw(void) const override
unsigned code(void) const override
resolve_error(const std::string &what)
resolve_error * dynamic_clone(void) const override
Definition: exception.hpp:231
rfnoc_error * dynamic_clone(void) const override
rfnoc_error(const std::string &what)
unsigned code(void) const override
void dynamic_throw(void) const override
Definition: exception.hpp:292
routing_error(const std::string &what)
void dynamic_throw(void) const override
routing_error * dynamic_clone(void) const override
unsigned code(void) const override
Definition: exception.hpp:133
runtime_error(const std::string &what)
unsigned code(void) const override
void dynamic_throw(void) const override
runtime_error * dynamic_clone(void) const override
Definition: exception.hpp:221
unsigned code(void) const override
void dynamic_throw(void) const override
syntax_error * dynamic_clone(void) const override
syntax_error(const std::string &what)
Definition: exception.hpp:209
system_error * dynamic_clone(void) const override
system_error(const std::string &what)
unsigned code(void) const override
void dynamic_throw(void) const override
Definition: exception.hpp:97
void dynamic_throw(void) const override
type_error(const std::string &what)
type_error * dynamic_clone(void) const override
unsigned code(void) const override
Definition: exception.hpp:143
unsigned code(void) const override
Definition: exception.hpp:146
int _code
Definition: exception.hpp:144
usb_error * dynamic_clone(void) const override
usb_error(int code, const std::string &what)
void dynamic_throw(void) const override
Definition: exception.hpp:109
value_error(const std::string &what)
unsigned code(void) const override
void dynamic_throw(void) const override
value_error * dynamic_clone(void) const override