The Gaudi Framework  v28r2p1 (f1a77ff4)
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
GaudiException Class Reference

Define general base for Gaudi exception. More...

#include <GaudiKernel/GaudiException.h>

Inheritance diagram for GaudiException:
Collaboration diagram for GaudiException:

Public Member Functions

 GaudiException (std::string Message, std::string Tag, StatusCode Code)
 Constructor (1) More...
 
 GaudiException (std::string Message, std::string Tag, StatusCode Code, const GaudiException &Exception)
 Constructor (2) More...
 
 GaudiException (std::string Message, std::string Tag, StatusCode Code, const std::exception &Exception)
 Constructor (3) More...
 
 GaudiException (const GaudiException &Exception)
 Copy constructor (deep copying!) More...
 
virtual ~GaudiException () throw ()
 destructor (perform the deletion of "previous" field!) More...
 
GaudiExceptionoperator= (const GaudiException &Exception)
 assignment operator More...
 
virtual const std::stringmessage () const
 error message to be printed More...
 
virtual const std::stringsetMessage (const std::string &newMessage)
 update the error message to be printed More...
 
virtual const std::stringtag () const
 name tag for the exception, or exception type More...
 
virtual const std::stringsetTag (const std::string &newTag)
 update name tag More...
 
virtual const StatusCodecode () const
 StatusCode for Exception. More...
 
virtual const StatusCodesetCode (const StatusCode &newStatus)
 update the status code for the exception More...
 
virtual GaudiExceptionprevious () const
 get the previous exception ( "previous" element in the linked list) More...
 
virtual std::ostreamprintOut (std::ostream &os=std::cerr) const
 methods for overloaded printout to std::ostream& and MsgStream& More...
 
virtual MsgStreamprintOut (MsgStream &os) const
 Output the exception to the Gaudi MsgStream. More...
 
virtual GaudiExceptionclone () const
 clone operation More...
 
const char * what () const override throw ()
 method from std::exception More...
 
- Public Member Functions inherited from std::exception
what (T...args)
 
~exception (T...args)
 
operator= (T...args)
 
exception (T...args)
 

Protected Attributes

std::string m_message
 
std::string m_tag
 error message More...
 
StatusCode m_code
 exception tag More...
 
std::unique_ptr< GaudiExceptionm_previous
 status code for exception More...
 

Static Protected Attributes

static bool s_proc
 "previous" element in the linked list More...
 

Friends

class StatusCode
 
std::ostreamoperator<< (std::ostream &os, const GaudiException &ge)
 overloaded printout to std::ostream More...
 
std::ostreamoperator<< (std::ostream &os, const GaudiException *pge)
 
MsgStreamoperator<< (MsgStream &os, const GaudiException &ge)
 overloaded printout to MsgStream More...
 
MsgStreamoperator<< (MsgStream &os, const GaudiException *pge)
 overloaded printout to MsgStream More...
 

Detailed Description

Define general base for Gaudi exception.

Author
Vanya Belyaev
Sebastien Ponce

Definition at line 23 of file GaudiException.h.

Constructor & Destructor Documentation

GaudiException::GaudiException ( std::string  Message,
std::string  Tag,
StatusCode  Code 
)
inline

Constructor (1)

Parameters
Messageerror message
Tag"name tag", or exeption type
Codestatus code

Definition at line 41 of file GaudiException.h.

44  : m_message ( std::move(Message) )
45  , m_tag ( std::move(Tag) )
46  , m_code ( std::move(Code) )
47  { s_proc = true; }
static bool s_proc
"previous" element in the linked list
std::string m_tag
error message
std::string m_message
T move(T...args)
StatusCode m_code
exception tag
GaudiException::GaudiException ( std::string  Message,
std::string  Tag,
StatusCode  Code,
const GaudiException Exception 
)
inline

Constructor (2)

Parameters
Messageerror message
Tag"name tag", or exeption type
Codestatus code
Exception"previous" exception

Definition at line 55 of file GaudiException.h.

59  : m_message ( std::move(Message) )
60  , m_tag ( std::move(Tag) )
61  , m_code ( std::move(Code) )
62  , m_previous ( Exception.clone() )
63  {}
std::string m_tag
error message
std::string m_message
virtual GaudiException * clone() const
clone operation
T move(T...args)
StatusCode m_code
exception tag
std::unique_ptr< GaudiException > m_previous
status code for exception
GaudiException::GaudiException ( std::string  Message,
std::string  Tag,
StatusCode  Code,
const std::exception Exception 
)
inline

Constructor (3)

Parameters
Messageerror message
Tag"name tag", or exeption type
Codestatus code
Exception"previous" exception (used to improve the error message)

Definition at line 71 of file GaudiException.h.

75  : m_message ( std::move(Message) )
76  , m_tag ( std::move(Tag) )
77  , m_code ( std::move(Code) )
78  {
79  s_proc = true;
80  m_message += ": " + System::typeinfoName(typeid(Exception)) + ", " +
81  Exception.what();
82  }
GAUDI_API const std::string typeinfoName(const std::type_info &)
Get platform independent information about the class type.
Definition: System.cpp:299
static bool s_proc
"previous" element in the linked list
std::string m_tag
error message
std::string m_message
T what(T...args)
T move(T...args)
StatusCode m_code
exception tag
GaudiException::GaudiException ( const GaudiException Exception)
inline

Copy constructor (deep copying!)

Definition at line 85 of file GaudiException.h.

86  : std::exception(Exception)
87  , m_message{ Exception.message() }
88  , m_tag { Exception.tag () }
89  , m_code { Exception.code () }
90  , m_previous{ Exception.previous() ? Exception.previous()->clone() : nullptr }
91  {
92  s_proc = true;
93  }
virtual const std::string & message() const
error message to be printed
static bool s_proc
"previous" element in the linked list
std::string m_tag
error message
virtual const StatusCode & code() const
StatusCode for Exception.
std::string m_message
virtual GaudiException * previous() const
get the previous exception ( "previous" element in the linked list)
virtual GaudiException * clone() const
clone operation
virtual const std::string & tag() const
name tag for the exception, or exception type
STL class.
StatusCode m_code
exception tag
std::unique_ptr< GaudiException > m_previous
status code for exception
virtual GaudiException::~GaudiException ( )
throw (
)
inlinevirtual

destructor (perform the deletion of "previous" field!)

Definition at line 96 of file GaudiException.h.

96  {
98  s_proc = false;
99  }
static bool s_proc
"previous" element in the linked list
StatusCode m_code
exception tag
void setChecked() const
Ignore the checking code;.
Definition: StatusCode.h:103

Member Function Documentation

virtual GaudiException* GaudiException::clone ( ) const
inlinevirtual

clone operation

Reimplemented in UpdateManagerException.

Definition at line 160 of file GaudiException.h.

160 { return new GaudiException(*this); }
GaudiException(std::string Message, std::string Tag, StatusCode Code)
Constructor (1)
virtual const StatusCode& GaudiException::code ( ) const
inlinevirtual

StatusCode for Exception.

Definition at line 127 of file GaudiException.h.

127 { return m_code; }
StatusCode m_code
exception tag
virtual const std::string& GaudiException::message ( ) const
inlinevirtual

error message to be printed

Definition at line 111 of file GaudiException.h.

111 { return m_message; }
std::string m_message
GaudiException& GaudiException::operator= ( const GaudiException Exception)
inline

assignment operator

Definition at line 102 of file GaudiException.h.

102  {
103  m_message = Exception.message() ;
104  m_tag = Exception.tag () ;
105  m_code = Exception.code () ;
106  m_previous.reset( Exception.previous() ? Exception.previous()->clone() : nullptr );
107  return *this;
108  }
virtual const std::string & message() const
error message to be printed
std::string m_tag
error message
virtual const StatusCode & code() const
StatusCode for Exception.
std::string m_message
virtual GaudiException * previous() const
get the previous exception ( "previous" element in the linked list)
virtual GaudiException * clone() const
clone operation
virtual const std::string & tag() const
name tag for the exception, or exception type
T reset(T...args)
StatusCode m_code
exception tag
std::unique_ptr< GaudiException > m_previous
status code for exception
virtual GaudiException* GaudiException::previous ( ) const
inlinevirtual

get the previous exception ( "previous" element in the linked list)

Definition at line 135 of file GaudiException.h.

135 { return m_previous.get() ; }
T get(T...args)
std::unique_ptr< GaudiException > m_previous
status code for exception
virtual std::ostream& GaudiException::printOut ( std::ostream os = std::cerr) const
inlinevirtual

methods for overloaded printout to std::ostream& and MsgStream&

Definition at line 138 of file GaudiException.h.

138  {
139  os << tag() << " \t " << message() ;
140  switch( code() ) {
141  case StatusCode::SUCCESS : os << "\t StatusCode=SUCCESS" ; break ;
142  case StatusCode::FAILURE : os << "\t StatusCode=FAILURE" ; break ;
143  default : os << "\t StatusCode=" << code() ; break ;
144  }
145  return ( 0 != previous() ) ? previous()->printOut( os << std::endl ) : os ;
146  }
virtual const std::string & message() const
error message to be printed
T endl(T...args)
virtual const StatusCode & code() const
StatusCode for Exception.
virtual GaudiException * previous() const
get the previous exception ( "previous" element in the linked list)
virtual const std::string & tag() const
name tag for the exception, or exception type
virtual std::ostream & printOut(std::ostream &os=std::cerr) const
methods for overloaded printout to std::ostream& and MsgStream&
virtual MsgStream& GaudiException::printOut ( MsgStream os) const
inlinevirtual

Output the exception to the Gaudi MsgStream.

Definition at line 149 of file GaudiException.h.

149  {
150  os << tag() << "\t" << message() ;
151  switch( code() ) {
152  case StatusCode::SUCCESS : os << "\t StatusCode=SUCCESS" ; break ;
153  case StatusCode::FAILURE : os << "\t StatusCode=FAILURE" ; break ;
154  default : os << "\t StatusCode=" << code().getCode() ; break ;
155  }
156  return ( 0 != previous() ) ? previous()->printOut( os << endmsg ) : os ;
157  }
virtual const std::string & message() const
error message to be printed
unsigned long getCode() const
Get the status code by value.
Definition: StatusCode.h:91
virtual const StatusCode & code() const
StatusCode for Exception.
virtual GaudiException * previous() const
get the previous exception ( "previous" element in the linked list)
virtual const std::string & tag() const
name tag for the exception, or exception type
virtual std::ostream & printOut(std::ostream &os=std::cerr) const
methods for overloaded printout to std::ostream& and MsgStream&
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:244
virtual const StatusCode& GaudiException::setCode ( const StatusCode newStatus)
inlinevirtual

update the status code for the exception

Definition at line 130 of file GaudiException.h.

130  {
131  m_code = newStatus; return code() ;
132  }
virtual const StatusCode & code() const
StatusCode for Exception.
StatusCode m_code
exception tag
virtual const std::string& GaudiException::setMessage ( const std::string newMessage)
inlinevirtual

update the error message to be printed

Definition at line 114 of file GaudiException.h.

114  {
115  m_message = newMessage; return message() ;
116  }
virtual const std::string & message() const
error message to be printed
std::string m_message
virtual const std::string& GaudiException::setTag ( const std::string newTag)
inlinevirtual

update name tag

Definition at line 122 of file GaudiException.h.

122  {
123  m_tag = newTag ; return tag() ;
124  }
std::string m_tag
error message
virtual const std::string & tag() const
name tag for the exception, or exception type
virtual const std::string& GaudiException::tag ( ) const
inlinevirtual

name tag for the exception, or exception type

Definition at line 119 of file GaudiException.h.

119 { return m_tag; }
std::string m_tag
error message
const char* GaudiException::what ( ) const
throw (
)
inlineoverride

method from std::exception

Definition at line 163 of file GaudiException.h.

163 { return message().c_str() ; }
virtual const std::string & message() const
error message to be printed
T c_str(T...args)

Friends And Related Function Documentation

std::ostream& operator<< ( std::ostream os,
const GaudiException ge 
)
friend

overloaded printout to std::ostream

Definition at line 173 of file GaudiException.h.

173  {
174  return ge.printOut( os );
175 }
virtual std::ostream & printOut(std::ostream &os=std::cerr) const
methods for overloaded printout to std::ostream& and MsgStream&
std::ostream& operator<< ( std::ostream os,
const GaudiException pge 
)
friend

Definition at line 176 of file GaudiException.h.

177 { return (0 == pge) ?
178  ( os << " GaudiException* points to NULL!" ) : ( os << *pge ); }
MsgStream& operator<< ( MsgStream os,
const GaudiException ge 
)
friend

overloaded printout to MsgStream

Definition at line 181 of file GaudiException.h.

181  {
182  return ge.printOut( os );
183 }
virtual std::ostream & printOut(std::ostream &os=std::cerr) const
methods for overloaded printout to std::ostream& and MsgStream&
MsgStream& operator<< ( MsgStream os,
const GaudiException pge 
)
friend

overloaded printout to MsgStream

Definition at line 185 of file GaudiException.h.

185  {
186  return (0 == pge) ?
187  ( os << " GaudiException* points to NULL!" ) : ( os << *pge );
188 }
friend class StatusCode
friend

Definition at line 33 of file GaudiException.h.

Member Data Documentation

StatusCode GaudiException::m_code
mutableprotected

exception tag

Definition at line 167 of file GaudiException.h.

std::string GaudiException::m_message
mutableprotected

Definition at line 165 of file GaudiException.h.

std::unique_ptr<GaudiException> GaudiException::m_previous
mutableprotected

status code for exception

Definition at line 168 of file GaudiException.h.

std::string GaudiException::m_tag
mutableprotected

error message

Definition at line 166 of file GaudiException.h.

bool GaudiException::s_proc
staticprotected

"previous" element in the linked list

Definition at line 169 of file GaudiException.h.


The documentation for this class was generated from the following files: