USRP Hardware Driver and USRP Manual  Version: 4.0.0.0-0-unknown
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  virtual unsigned code(void) const;
52  virtual assertion_error* dynamic_clone(void) const;
53  virtual void dynamic_throw(void) const;
54 };
55 
60 {
61  lookup_error(const std::string& what);
62  virtual unsigned code(void) const;
63  virtual lookup_error* dynamic_clone(void) const;
64  virtual void dynamic_throw(void) const;
65 };
66 
70 {
71  index_error(const std::string& what);
72  virtual unsigned code(void) const;
73  virtual index_error* dynamic_clone(void) const;
74  virtual void dynamic_throw(void) const;
75 };
76 
83 {
84  key_error(const std::string& what);
85  virtual unsigned code(void) const;
86  virtual key_error* dynamic_clone(void) const;
87  virtual void dynamic_throw(void) const;
88 };
89 
97 {
98  type_error(const std::string& what);
99  virtual unsigned code(void) const;
100  virtual type_error* dynamic_clone(void) const;
101  virtual void dynamic_throw(void) const;
102 };
103 
109 {
110  value_error(const std::string& what);
111  virtual unsigned code(void) const;
112  virtual value_error* dynamic_clone(void) const;
113  virtual void dynamic_throw(void) const;
114 };
115 
122 {
123  narrowing_error(const std::string& what);
124  virtual unsigned code(void) const;
125  virtual narrowing_error* dynamic_clone(void) const;
126  virtual void dynamic_throw(void) const;
127 };
128 
133 {
134  runtime_error(const std::string& what);
135  virtual unsigned code(void) const;
136  virtual runtime_error* dynamic_clone(void) const;
137  virtual void dynamic_throw(void) const;
138 };
139 
143 {
144  int _code;
145  usb_error(int code, const std::string& what);
146  virtual unsigned code(void) const
147  {
148  return _code;
149  };
150  virtual usb_error* dynamic_clone(void) const;
151  virtual void dynamic_throw(void) const;
152 };
153 
158 {
159  not_implemented_error(const std::string& what);
160  virtual unsigned code(void) const;
161  virtual not_implemented_error* dynamic_clone(void) const;
162  virtual void dynamic_throw(void) const;
163 };
164 
169 {
170  access_error(const std::string& what);
171  virtual unsigned code(void) const;
172  virtual access_error* dynamic_clone(void) const;
173  virtual void dynamic_throw(void) const;
174 };
175 
179 {
180  environment_error(const std::string& what);
181  virtual unsigned code(void) const;
182  virtual environment_error* dynamic_clone(void) const;
183  virtual void dynamic_throw(void) const;
184 };
185 
189 {
190  io_error(const std::string& what);
191  virtual unsigned code(void) const;
192  virtual io_error* dynamic_clone(void) const;
193  virtual void dynamic_throw(void) const;
194 };
195 
199 {
200  os_error(const std::string& what);
201  virtual unsigned code(void) const;
202  virtual os_error* dynamic_clone(void) const;
203  virtual void dynamic_throw(void) const;
204 };
205 
209 {
210  system_error(const std::string& what);
211  virtual unsigned code(void) const;
212  virtual system_error* dynamic_clone(void) const;
213  virtual void dynamic_throw(void) const;
214 };
215 
221 {
222  syntax_error(const std::string& what);
223  virtual unsigned code(void) const;
224  virtual syntax_error* dynamic_clone(void) const;
225  virtual void dynamic_throw(void) const;
226 };
227 
231 {
232  rfnoc_error(const std::string& what);
233  virtual unsigned code(void) const;
234  virtual rfnoc_error* dynamic_clone(void) const;
235  virtual void dynamic_throw(void) const;
236 };
237 
241 {
242  op_failed(const std::string& what);
243  virtual unsigned code(void) const;
244  virtual op_failed* dynamic_clone(void) const;
245  virtual void dynamic_throw(void) const;
246 };
247 
252 {
253  op_timeout(const std::string& what);
254  virtual unsigned code(void) const;
255  virtual op_timeout* dynamic_clone(void) const;
256  virtual void dynamic_throw(void) const;
257 };
258 
262 {
263  op_seqerr(const std::string& what);
264  virtual unsigned code(void) const;
265  virtual op_seqerr* dynamic_clone(void) const;
266  virtual void dynamic_throw(void) const;
267 };
268 
272 {
273  op_timerr(const std::string& what);
274  virtual unsigned code(void) const;
275  virtual op_timerr* dynamic_clone(void) const;
276  virtual void dynamic_throw(void) const;
277 };
278 
282 {
283  resolve_error(const std::string& what);
284  virtual unsigned code(void) const;
285  virtual resolve_error* dynamic_clone(void) const;
286  virtual void dynamic_throw(void) const;
287 };
288 
292 {
293  routing_error(const std::string& what);
294  virtual unsigned code(void) const;
295  virtual routing_error* dynamic_clone(void) const;
296  virtual void dynamic_throw(void) const;
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
uhd::key_error::dynamic_throw
virtual void dynamic_throw(void) const
uhd::op_seqerr::code
virtual unsigned code(void) const
uhd::op_timerr::dynamic_throw
virtual void dynamic_throw(void) const
uhd::environment_error::dynamic_clone
virtual environment_error * dynamic_clone(void) const
uhd::type_error::code
virtual unsigned code(void) const
uhd::not_implemented_error::dynamic_clone
virtual not_implemented_error * dynamic_clone(void) const
uhd::index_error::dynamic_clone
virtual index_error * dynamic_clone(void) const
uhd::not_implemented_error::code
virtual unsigned code(void) const
uhd::not_implemented_error
Definition: exception.hpp:158
uhd::assertion_error::assertion_error
assertion_error(const std::string &what)
uhd::resolve_error::dynamic_clone
virtual resolve_error * dynamic_clone(void) const
config.hpp
uhd::narrowing_error::narrowing_error
narrowing_error(const std::string &what)
uhd::lookup_error
Definition: exception.hpp:60
uhd::exception
Definition: exception.hpp:37
uhd::environment_error::code
virtual unsigned code(void) const
uhd::io_error::dynamic_throw
virtual void dynamic_throw(void) const
uhd::key_error::key_error
key_error(const std::string &what)
uhd::not_implemented_error::dynamic_throw
virtual void dynamic_throw(void) const
uhd::usb_error::dynamic_throw
virtual void dynamic_throw(void) const
uhd::narrowing_error::code
virtual unsigned code(void) const
uhd::value_error
Definition: exception.hpp:109
uhd::environment_error
Definition: exception.hpp:179
uhd::routing_error::routing_error
routing_error(const std::string &what)
uhd::op_timeout::dynamic_clone
virtual op_timeout * dynamic_clone(void) const
uhd::resolve_error
Definition: exception.hpp:282
uhd::exception::dynamic_throw
virtual void dynamic_throw(void) const =0
uhd::system_error
Definition: exception.hpp:209
uhd::routing_error::code
virtual unsigned code(void) const
uhd::resolve_error::dynamic_throw
virtual void dynamic_throw(void) const
uhd::op_timeout::op_timeout
op_timeout(const std::string &what)
uhd::rfnoc_error
Definition: exception.hpp:231
uhd::syntax_error::dynamic_throw
virtual void dynamic_throw(void) const
uhd::op_failed::code
virtual unsigned code(void) const
uhd::op_timeout::code
virtual unsigned code(void) const
uhd::op_failed::op_failed
op_failed(const std::string &what)
uhd::usb_error::_code
int _code
Definition: exception.hpp:144
uhd::system_error::dynamic_clone
virtual system_error * dynamic_clone(void) const
UHD_API
#define UHD_API
Definition: config.h:67
uhd::environment_error::dynamic_throw
virtual void dynamic_throw(void) const
uhd::routing_error::dynamic_throw
virtual void dynamic_throw(void) const
uhd::op_seqerr::op_seqerr
op_seqerr(const std::string &what)
uhd::narrowing_error
Definition: exception.hpp:122
uhd::narrowing_error::dynamic_throw
virtual void dynamic_throw(void) const
uhd::index_error::index_error
index_error(const std::string &what)
uhd::system_error::dynamic_throw
virtual void dynamic_throw(void) const
uhd::system_error::code
virtual unsigned code(void) const
uhd::op_timerr::code
virtual unsigned code(void) const
uhd::os_error
Definition: exception.hpp:199
uhd::op_timeout::dynamic_throw
virtual void dynamic_throw(void) const
uhd::value_error::code
virtual unsigned code(void) const
uhd::narrowing_error::dynamic_clone
virtual narrowing_error * dynamic_clone(void) const
uhd::value_error::dynamic_clone
virtual value_error * dynamic_clone(void) const
uhd::type_error::dynamic_throw
virtual void dynamic_throw(void) const
uhd::op_failed::dynamic_clone
virtual op_failed * dynamic_clone(void) const
uhd::type_error::type_error
type_error(const std::string &what)
uhd::runtime_error::dynamic_throw
virtual void dynamic_throw(void) const
uhd::access_error
Definition: exception.hpp:169
uhd::lookup_error::lookup_error
lookup_error(const std::string &what)
uhd::lookup_error::dynamic_throw
virtual void dynamic_throw(void) const
uhd::usb_error
Definition: exception.hpp:143
uhd::rfnoc_error::dynamic_throw
virtual void dynamic_throw(void) const
uhd::runtime_error::code
virtual unsigned code(void) const
uhd::index_error
Definition: exception.hpp:70
uhd::op_seqerr::dynamic_clone
virtual op_seqerr * dynamic_clone(void) const
uhd::syntax_error
Definition: exception.hpp:221
uhd::runtime_error::dynamic_clone
virtual runtime_error * dynamic_clone(void) const
uhd::access_error::access_error
access_error(const std::string &what)
uhd::io_error::dynamic_clone
virtual io_error * dynamic_clone(void) const
uhd
Definition: build_info.hpp:12
uhd::resolve_error::resolve_error
resolve_error(const std::string &what)
uhd::io_error::code
virtual unsigned code(void) const
uhd::value_error::value_error
value_error(const std::string &what)
uhd::access_error::code
virtual unsigned code(void) const
uhd::os_error::os_error
os_error(const std::string &what)
uhd::index_error::code
virtual unsigned code(void) const
uhd::environment_error::environment_error
environment_error(const std::string &what)
uhd::assertion_error::dynamic_throw
virtual void dynamic_throw(void) const
uhd::op_seqerr
Definition: exception.hpp:262
uhd::rfnoc_error::rfnoc_error
rfnoc_error(const std::string &what)
uhd::assertion_error::code
virtual unsigned code(void) const
uhd::usb_error::usb_error
usb_error(int code, const std::string &what)
uhd::access_error::dynamic_throw
virtual void dynamic_throw(void) const
uhd::type_error::dynamic_clone
virtual type_error * dynamic_clone(void) const
uhd::rfnoc_error::code
virtual unsigned code(void) const
uhd::runtime_error
Definition: exception.hpp:133
uhd::assertion_error::dynamic_clone
virtual assertion_error * dynamic_clone(void) const
uhd::os_error::dynamic_clone
virtual os_error * dynamic_clone(void) const
uhd::type_error
Definition: exception.hpp:97
uhd::usb_error::code
virtual unsigned code(void) const
Definition: exception.hpp:146
uhd::exception::dynamic_clone
virtual exception * dynamic_clone(void) const =0
uhd::os_error::dynamic_throw
virtual void dynamic_throw(void) const
uhd::syntax_error::dynamic_clone
virtual syntax_error * dynamic_clone(void) const
uhd::op_failed
Definition: exception.hpp:241
uhd::exception::code
virtual unsigned code(void) const =0
uhd::routing_error
Definition: exception.hpp:292
uhd::routing_error::dynamic_clone
virtual routing_error * dynamic_clone(void) const
uhd::op_timerr::op_timerr
op_timerr(const std::string &what)
uhd::key_error::dynamic_clone
virtual key_error * dynamic_clone(void) const
uhd::op_timeout
Definition: exception.hpp:252
uhd::assertion_error
Definition: exception.hpp:49
uhd::op_seqerr::dynamic_throw
virtual void dynamic_throw(void) const
uhd::system_error::system_error
system_error(const std::string &what)
uhd::value_error::dynamic_throw
virtual void dynamic_throw(void) const
uhd::index_error::dynamic_throw
virtual void dynamic_throw(void) const
uhd::syntax_error::syntax_error
syntax_error(const std::string &what)
uhd::os_error::code
virtual unsigned code(void) const
uhd::runtime_error::runtime_error
runtime_error(const std::string &what)
uhd::rfnoc_error::dynamic_clone
virtual rfnoc_error * dynamic_clone(void) const
uhd::io_error
Definition: exception.hpp:189
uhd::key_error
Definition: exception.hpp:83
uhd::op_failed::dynamic_throw
virtual void dynamic_throw(void) const
uhd::op_timerr
Definition: exception.hpp:272
uhd::lookup_error::dynamic_clone
virtual lookup_error * dynamic_clone(void) const
uhd::op_timerr::dynamic_clone
virtual op_timerr * dynamic_clone(void) const
uhd::io_error::io_error
io_error(const std::string &what)
uhd::exception::exception
exception(const std::string &what)
uhd::resolve_error::code
virtual unsigned code(void) const
uhd::not_implemented_error::not_implemented_error
not_implemented_error(const std::string &what)
uhd::access_error::dynamic_clone
virtual access_error * dynamic_clone(void) const
uhd::usb_error::dynamic_clone
virtual usb_error * dynamic_clone(void) const
uhd::lookup_error::code
virtual unsigned code(void) const
uhd::key_error::code
virtual unsigned code(void) const
uhd::syntax_error::code
virtual unsigned code(void) const