Camargue
|
ERROR HANDLING CLASSES AND ROUTINES. More...
#include <stdexcept>
#include <string>
#include <iostream>
Go to the source code of this file.
Classes | |
class | CMR::util::ScopeGuard< act_type > |
Code from Andrei Alexandrescu's ScopeGuard11 slides. More... | |
struct | CMR::util::retcode_error |
Structure for converting retcodes to exceptions. More... | |
Namespaces | |
CMR | |
The namespace for this project. | |
CMR::util | |
Utility functions/structures used miscellaneous places in the project. | |
Macros | |
#define | CMR_CATCH_PRINT_THROW(msg, new_ex) |
Macro for handling errors in function with multiple failure points. More... | |
Functions | |
template<typename act_type > | |
ScopeGuard< act_type > | CMR::util::make_guard (act_type f) |
Type deduction function for ScopeGuard, also from Andrei Alexandrescu. More... | |
ERROR HANDLING CLASSES AND ROUTINES.
This file contains classes for creating cleanup objects and exceptions derived from standard library runtime error.
#define CMR_CATCH_PRINT_THROW | ( | msg, | |
new_ex | |||
) |
Macro for handling errors in function with multiple failure points.
Suggested usage: This macro should be used in a function by initially declaring a runtime_error new_ex("Function failed."). Then, for various smaller tasks within the function that may throw for distinct reasons (and which throw exceptions derived from std::exception), use a try block followed by CMR_CATCH_PRINT_THROW("description of failure in small task", new_ex).