Loading...
Searching...
No Matches
safe_call.hpp File Reference
`#include <uhd/config.hpp>`
`#include <uhd/exception.hpp>`
`#include <uhd/utils/log.hpp>`
Include dependency graph for safe_call.hpp:

Go to the source code of this file.

## Macros

#define | _UHD_SAFE_CALL_WARNING(code, what)
| helper macro for safe call to produce warnings
#define | UHD_SAFE_CALL(code)

## Macro Definition Documentation

## _UHD_SAFE_CALL_WARNING

#define _UHD_SAFE_CALL_WARNING | ( |  | code,
|  |  | what )

Value:
UHD_LOGGER_WARNING("UHD") << UHD_THROW_SITE_INFO("Exception caught in safe-call.") \
+ #code + " -> " + what;
UHD_THROW_SITE_INFO
#define UHD_THROW_SITE_INFO(what)
Definition exception.hpp:304
UHD_LOGGER_WARNING
#define UHD_LOGGER_WARNING(component)
Definition log.hpp:272

helper macro for safe call to produce warnings

## UHD_SAFE_CALL

#define UHD_SAFE_CALL | ( |  | code | ) |

Value:
try { \
code; \
} catch (const std::exception& e) { \
_UHD_SAFE_CALL_WARNING(code, e.what()); \
} catch (...) { \
_UHD_SAFE_CALL_WARNING(code, "unknown exception"); \
}

A safe-call catches all exceptions thrown by code, and creates a verbose warning about the exception. Usage: UHD_SAFE_CALL(some_code_to_call());

Parameters

  code | the block of code to call safely