| The Gaudi Framework v27r1

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

Public Member Functions | Protected Attributes | Static Protected Attributes | Friends | List of all members
GaudiException Class Reference

Define general base for Gaudi exception. More...

`#include <GaudiKernel/GaudiException.h>`

Inheritance diagram for GaudiException:
[legend]
Collaboration diagram for GaudiException:
[legend]

## 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...
GaudiException & | operator= (const GaudiException &Exception)
| assignment operator More...
virtual const std::string & | message () const
| error message to be printed More...
virtual const std::string & | setMessage (const std::string &newMessage)
| update the error message to be printed More...
virtual const std::string & | tag () const
| name tag for the exception, or exception type More...
virtual const std::string & | setTag (const std::string &newTag)
| update name tag More...
virtual const StatusCode & | code () const
| StatusCode for Exception. More...
virtual const StatusCode & | setCode (const StatusCode &newStatus)
| update the status code for the exception More...
virtual GaudiException * | previous () const
| get the previous exception ( "previous" element in the linked list) More...
virtual std::ostream & | printOut (std::ostream &os=std::cerr) const
| methods for overloaded printout to std::ostream& and MsgStream& More...
virtual MsgStream & | printOut (MsgStream &os) const
| Output the exception to the Gaudi MsgStream. More...
virtual GaudiException * | clone () const
| clone operation More...
virtual const char * | what () const throw ()
| method from std::exception More...
Public Member Functions inherited from std::exception
T | what (T...args)
T | ~exception (T...args)
T | operator= (T...args)
T | 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< GaudiException > | m_previous
| status code for exception More...

## Static Protected Attributes
static bool | s_proc
| "previous" element in the linked list More...

## Friends
class | StatusCode
std::ostream & | operator<< (std::ostream &os, const GaudiException &ge)
| overloaded printout to std::ostream More...
std::ostream & | operator<< (std::ostream &os, const GaudiException *pge)
MsgStream & | operator<< (MsgStream &os, const GaudiException &ge)
| overloaded printout to MsgStream More...
MsgStream & | operator<< (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

  Message | error message
  Tag | "name tag", or exeption type
  Code | status 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; }
GaudiException::s_proc
static bool s_proc
"previous" element in the linked list
Definition: GaudiException.h:169
GaudiException::m_tag
std::string m_tag
error message
Definition: GaudiException.h:166
GaudiException::m_message
std::string m_message
Definition: GaudiException.h:165
std::move
T move(T...args)
GaudiException::m_code
StatusCode m_code
exception tag
Definition: GaudiException.h:167

GaudiException::GaudiException | ( | std::string | Message,
|  | std::string | Tag,
|  | StatusCode | Code,
|  | const GaudiException & | Exception
| ) |  |
| inline

Constructor (2)

Parameters

  Message | error message
  Tag | "name tag", or exeption type
  Code | status 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 {}
GaudiException::m_tag
std::string m_tag
error message
Definition: GaudiException.h:166
GaudiException::m_message
std::string m_message
Definition: GaudiException.h:165
GaudiException::clone
virtual GaudiException * clone() const
clone operation
Definition: GaudiException.h:160
std::move
T move(T...args)
GaudiException::m_code
StatusCode m_code
exception tag
Definition: GaudiException.h:167
GaudiException::m_previous
std::unique_ptr< GaudiException > m_previous
status code for exception
Definition: GaudiException.h:168

GaudiException::GaudiException | ( | std::string | Message,
|  | std::string | Tag,
|  | StatusCode | Code,
|  | const std::exception & | Exception
| ) |  |
| inline

Constructor (3)

Parameters

  Message | error message
  Tag | "name tag", or exeption type
  Code | status 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 }
System::typeinfoName
GAUDI_API const std::string typeinfoName(const std::type_info &)
Get platform independent information about the class type.
Definition: System.cpp:297
GaudiException::s_proc
static bool s_proc
"previous" element in the linked list
Definition: GaudiException.h:169
GaudiException::m_tag
std::string m_tag
error message
Definition: GaudiException.h:166
GaudiException::m_message
std::string m_message
Definition: GaudiException.h:165
std::exception::what
T what(T...args)
std::move
T move(T...args)
GaudiException::m_code
StatusCode m_code
exception tag
Definition: GaudiException.h:167

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 }
GaudiException::message
virtual const std::string & message() const
error message to be printed
Definition: GaudiException.h:111
GaudiException::s_proc
static bool s_proc
"previous" element in the linked list
Definition: GaudiException.h:169
GaudiException::m_tag
std::string m_tag
error message
Definition: GaudiException.h:166
GaudiException::code
virtual const StatusCode & code() const
StatusCode for Exception.
Definition: GaudiException.h:127
GaudiException::m_message
std::string m_message
Definition: GaudiException.h:165
GaudiException::previous
virtual GaudiException * previous() const
get the previous exception ( "previous" element in the linked list)
Definition: GaudiException.h:135
GaudiException::clone
virtual GaudiException * clone() const
clone operation
Definition: GaudiException.h:160
GaudiException::tag
virtual const std::string & tag() const
name tag for the exception, or exception type
Definition: GaudiException.h:119
std::exception
STL class.
GaudiException::m_code
StatusCode m_code
exception tag
Definition: GaudiException.h:167
GaudiException::m_previous
std::unique_ptr< GaudiException > m_previous
status code for exception
Definition: GaudiException.h:168

virtual GaudiException::~GaudiException | ( |  | ) |
throw | ( |
| ) |  |
| inline virtual

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

Definition at line 96 of file GaudiException.h.

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

## Member Function Documentation

virtual GaudiException* GaudiException::clone | ( |  | ) | const
| inline virtual

clone operation

Reimplemented in UpdateManagerException.

Definition at line 160 of file GaudiException.h.

160 { return new GaudiException(*this); }
GaudiException::GaudiException
GaudiException(std::string Message, std::string Tag, StatusCode Code)
Constructor (1)
Definition: GaudiException.h:41

virtual const StatusCode& GaudiException::code | ( |  | ) | const
| inline virtual

StatusCode for Exception.

Definition at line 127 of file GaudiException.h.

127 { return m_code; }
GaudiException::m_code
StatusCode m_code
exception tag
Definition: GaudiException.h:167

virtual const std::string& GaudiException::message | ( |  | ) | const
| inline virtual

error message to be printed

Definition at line 111 of file GaudiException.h.

111 { return m_message; }
GaudiException::m_message
std::string m_message
Definition: GaudiException.h:165

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 }
GaudiException::message
virtual const std::string & message() const
error message to be printed
Definition: GaudiException.h:111
GaudiException::m_tag
std::string m_tag
error message
Definition: GaudiException.h:166
GaudiException::code
virtual const StatusCode & code() const
StatusCode for Exception.
Definition: GaudiException.h:127
GaudiException::m_message
std::string m_message
Definition: GaudiException.h:165
GaudiException::previous
virtual GaudiException * previous() const
get the previous exception ( "previous" element in the linked list)
Definition: GaudiException.h:135
GaudiException::clone
virtual GaudiException * clone() const
clone operation
Definition: GaudiException.h:160
GaudiException::tag
virtual const std::string & tag() const
name tag for the exception, or exception type
Definition: GaudiException.h:119
std::unique_ptr::reset
T reset(T...args)
GaudiException::m_code
StatusCode m_code
exception tag
Definition: GaudiException.h:167
GaudiException::m_previous
std::unique_ptr< GaudiException > m_previous
status code for exception
Definition: GaudiException.h:168

virtual GaudiException* GaudiException::previous | ( |  | ) | const
| inline virtual

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

Definition at line 135 of file GaudiException.h.

135 { return m_previous.get() ; }
std::unique_ptr::get
T get(T...args)
GaudiException::m_previous
std::unique_ptr< GaudiException > m_previous
status code for exception
Definition: GaudiException.h:168

virtual std::ostream& GaudiException::printOut | ( | std::ostream & | os = `std::cerr` | ) | const
| inline virtual

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 }
GaudiException::message
virtual const std::string & message() const
error message to be printed
Definition: GaudiException.h:111
std::endl
T endl(T...args)
GaudiException::code
virtual const StatusCode & code() const
StatusCode for Exception.
Definition: GaudiException.h:127
StatusCode::FAILURE
Definition: StatusCode.h:29
StatusCode::SUCCESS
Definition: StatusCode.h:30
GaudiException::previous
virtual GaudiException * previous() const
get the previous exception ( "previous" element in the linked list)
Definition: GaudiException.h:135
GaudiException::tag
virtual const std::string & tag() const
name tag for the exception, or exception type
Definition: GaudiException.h:119
GaudiException::printOut
virtual std::ostream & printOut(std::ostream &os=std::cerr) const
methods for overloaded printout to std::ostream& and MsgStream&
Definition: GaudiException.h:138

virtual MsgStream& GaudiException::printOut | ( | MsgStream & | os | ) | const
| inline virtual

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 }
GaudiException::message
virtual const std::string & message() const
error message to be printed
Definition: GaudiException.h:111
StatusCode::getCode
unsigned long getCode() const
Get the status code by value.
Definition: StatusCode.h:93
GaudiException::code
virtual const StatusCode & code() const
StatusCode for Exception.
Definition: GaudiException.h:127
StatusCode::FAILURE
Definition: StatusCode.h:29
StatusCode::SUCCESS
Definition: StatusCode.h:30
GaudiException::previous
virtual GaudiException * previous() const
get the previous exception ( "previous" element in the linked list)
Definition: GaudiException.h:135
GaudiException::tag
virtual const std::string & tag() const
name tag for the exception, or exception type
Definition: GaudiException.h:119
GaudiException::printOut
virtual std::ostream & printOut(std::ostream &os=std::cerr) const
methods for overloaded printout to std::ostream& and MsgStream&
Definition: GaudiException.h:138
endmsg
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 | ) |
| inline virtual

update the status code for the exception

Definition at line 130 of file GaudiException.h.

130 {
131 m_code = newStatus; return code() ;
132 }
GaudiException::code
virtual const StatusCode & code() const
StatusCode for Exception.
Definition: GaudiException.h:127
GaudiException::m_code
StatusCode m_code
exception tag
Definition: GaudiException.h:167

virtual const std::string& GaudiException::setMessage | ( | const std::string & | newMessage | ) |
| inline virtual

update the error message to be printed

Definition at line 114 of file GaudiException.h.

114 {
115 m_message = newMessage; return message() ;
116 }
GaudiException::message
virtual const std::string & message() const
error message to be printed
Definition: GaudiException.h:111
GaudiException::m_message
std::string m_message
Definition: GaudiException.h:165

virtual const std::string& GaudiException::setTag | ( | const std::string & | newTag | ) |
| inline virtual

update name tag

Definition at line 122 of file GaudiException.h.

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

virtual const std::string& GaudiException::tag | ( |  | ) | const
| inline virtual

name tag for the exception, or exception type

Definition at line 119 of file GaudiException.h.

119 { return m_tag; }
GaudiException::m_tag
std::string m_tag
error message
Definition: GaudiException.h:166

virtual const char* GaudiException::what | ( |  | ) | const
throw | ( |
| ) |  |
| inline virtual

method from std::exception

Definition at line 163 of file GaudiException.h.

163 { return message().c_str() ; }
GaudiException::message
virtual const std::string & message() const
error message to be printed
Definition: GaudiException.h:111
std::string::c_str
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 }
GaudiException::printOut
virtual std::ostream & printOut(std::ostream &os=std::cerr) const
methods for overloaded printout to std::ostream& and MsgStream&
Definition: GaudiException.h:138

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 }
GaudiException::printOut
virtual std::ostream & printOut(std::ostream &os=std::cerr) const
methods for overloaded printout to std::ostream& and MsgStream&
Definition: GaudiException.h:138

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
| mutable protected

exception tag

Definition at line 167 of file GaudiException.h.

std::string GaudiException::m_message
| mutable protected

Definition at line 165 of file GaudiException.h.

std::unique_ptr<GaudiException> GaudiException::m_previous
| mutable protected

status code for exception

Definition at line 168 of file GaudiException.h.

std::string GaudiException::m_tag
| mutable protected

error message

Definition at line 166 of file GaudiException.h.

bool GaudiException::s_proc
| static protected

"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:

- GaudiKernel/GaudiKernel/GaudiException.h
- GaudiKernel/src/Lib/GaudiException.cpp