Classes | Namespaces | Macros | Typedefs
Exceptions.h File Reference
#include <boost/exception/all.hpp>
#include <exception>
#include <string>

Go to the source code of this file.

Classes

struct  WireCell::Exception
 The base wire cell exception. More...
 
struct  WireCell::ValueError
 Thrown when a wrong value has been encountered. More...
 
struct  WireCell::IndexError
 Thrown when a wrong index is used. More...
 
struct  WireCell::KeyError
 Thrown when a wrong key or has been encountered. More...
 
class  WireCell::IOError
 Thrown when an error involving accessing input or output has occurred. More...
 
class  WireCell::RuntimeError
 Thrown when an error occurs during the data processing. More...
 
class  WireCell::AssertionError
 Thrown when an assertion fails. More...
 

Namespaces

 WireCell
 

Macros

#define THROW(e)   BOOST_THROW_EXCEPTION(e)
 
#define errstr(e)   boost::diagnostic_information(e)
 

Typedefs

typedef boost::error_info< struct tag_errmsg, std::stringWireCell::errmsg
 

Macro Definition Documentation

#define errstr (   e)    boost::diagnostic_information(e)

Definition at line 26 of file Exceptions.h.

#define THROW (   e)    BOOST_THROW_EXCEPTION(e)

Wire Cell code may throw exceptions.

The core Wire Cell code should only throw WireCell::Exception (or a subclass).

Boost exceptions are used to allow the programmer to provide dynamic information about an error and to collect file name and line number.

Exceptions should be thrown something like:

if (omg) { THROW(ValueError() << errmsg{"I didn't expect that"}); }

Definition at line 25 of file Exceptions.h.