errors.hpp File Reference

Classes and functions for error handling. More...

#include <ql/qldefines.hpp>
#include <boost/assert.hpp>
#include <boost/current_function.hpp>
#include <boost/shared_ptr.hpp>
#include <exception>
#include <sstream>
Include dependency graph for errors.hpp:

Classes

class  Error
 Base error class. More...
 

Namespaces

 QuantLib
 

Macros

#define MULTILINE_MACRO_BEGIN   do {
 
#define MULTILINE_MACRO_END   } while(false)
 
#define QL_FAIL(message)
 throw an error (possibly with file and line information) More...
 
#define QL_ASSERT(condition, message)
 throw an error if the given condition is not verified More...
 
#define QL_REQUIRE(condition, message)
 throw an error if the given pre-condition is not verified More...
 
#define QL_ENSURE(condition, message)
 throw an error if the given post-condition is not verified More...
 

Detailed Description

Classes and functions for error handling.

Macro Definition Documentation

#define QL_FAIL (   message)
Value:
MULTILINE_MACRO_BEGIN \
std::ostringstream _ql_msg_stream; \
_ql_msg_stream << message; \
throw QuantLib::Error(__FILE__,__LINE__, \
BOOST_CURRENT_FUNCTION,_ql_msg_stream.str()); \
MULTILINE_MACRO_END
Base error class.
Definition: errors.hpp:38

throw an error (possibly with file and line information)

#define QL_ASSERT (   condition,
  message 
)
Value:
if (!(condition)) { \
std::ostringstream _ql_msg_stream; \
_ql_msg_stream << message; \
throw QuantLib::Error(__FILE__,__LINE__, \
BOOST_CURRENT_FUNCTION,_ql_msg_stream.str()); \
} else
Base error class.
Definition: errors.hpp:38

throw an error if the given condition is not verified

#define QL_REQUIRE (   condition,
  message 
)
Value:
if (!(condition)) { \
std::ostringstream _ql_msg_stream; \
_ql_msg_stream << message; \
throw QuantLib::Error(__FILE__,__LINE__, \
BOOST_CURRENT_FUNCTION,_ql_msg_stream.str()); \
} else
Base error class.
Definition: errors.hpp:38

throw an error if the given pre-condition is not verified

Examples:
DiscreteHedging.cpp, FittedBondCurve.cpp, and swapvaluation.cpp.
#define QL_ENSURE (   condition,
  message 
)
Value:
if (!(condition)) { \
std::ostringstream _ql_msg_stream; \
_ql_msg_stream << message; \
throw QuantLib::Error(__FILE__,__LINE__, \
BOOST_CURRENT_FUNCTION,_ql_msg_stream.str()); \
} else
Base error class.
Definition: errors.hpp:38

throw an error if the given post-condition is not verified