| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

In This Package:

GaudiException Class Reference

Define general base for Gaudi exception. More...

#include <GaudiKernel/GaudiException.h>

Inheritance diagram for GaudiException:

[legend]
Collaboration diagram for GaudiException:
[legend]
List of all members.

Public Member Functions

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

Protected Attributes

std::string m_message
std::string m_tag
 error message
StatusCode m_code
 exception tag
GaudiExceptionm_previous
 status code for exception

Friends

std::ostream & operator<< (std::ostream &os, const GaudiException &ge)
 overloaded printout to std::ostream
std::ostream & operator<< (std::ostream &os, const GaudiException *pge)
MsgStreamoperator<< (MsgStream &os, const GaudiException &ge)
 overloaded printout to MsgStream
MsgStreamoperator<< (MsgStream &os, const GaudiException *pge)
 overloaded printout to MsgStream

Detailed Description

Define general base for Gaudi exception.

Author:
Vanya Belyaev

Sebastien Ponce

Definition at line 24 of file GaudiException.h.


Constructor & Destructor Documentation

GaudiException::GaudiException ( const std::string &  Message,
const std::string &  Tag,
const 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.

00044     : m_message    ( Message    ) 
00045     , m_tag        ( Tag        )  
00046     , m_code       ( Code       ) 
00047     , m_previous   (     0      ) 
00048     {}

GaudiException::GaudiException ( const std::string &  Message,
const std::string &  Tag,
const 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 56 of file GaudiException.h.

00060     : m_message    ( Message            ) 
00061     , m_tag        ( Tag                )  
00062     , m_code       ( Code               ) 
00063     , m_previous   ( Exception.clone()  ) 
00064     {}

GaudiException::GaudiException ( const std::string &  Message,
const std::string &  Tag,
const 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 72 of file GaudiException.h.

00076     : m_message    ( Message    ) 
00077     , m_tag        ( Tag        )  
00078     , m_code       ( Code       ) 
00079     , m_previous   (     0      ) 
00080     {
00081       m_message += ": " + System::typeinfoName(typeid(Exception)) + ", " +
00082                    Exception.what();
00083     } 

GaudiException::GaudiException ( const GaudiException Exception  )  [inline]

Copy constructor (deep copying!).

Definition at line 86 of file GaudiException.h.

00086                                                     : std::exception(Exception)
00087   {
00088     m_message  =   Exception.message() ;  
00089     m_tag      =   Exception.tag    () ;     
00090     m_code     =   Exception.code   () ; 
00091     m_previous = ( 0 == Exception.previous() ) ?
00092       0 : Exception.previous()->clone() ; 
00093   }  

virtual GaudiException::~GaudiException (  )  throw () [inline, virtual]

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

Definition at line 96 of file GaudiException.h.

00096                                     {
00097     if( 0 != m_previous ) { delete m_previous ; m_previous = 0 ; }
00098   } 


Member Function Documentation

GaudiException& GaudiException::operator= ( const GaudiException Exception  )  [inline]

assignment operator

Definition at line 101 of file GaudiException.h.

00101                                                                {
00102     if ( &Exception == this ) { return *this; } 
00103     m_message  =   Exception.message() ;  
00104     m_tag      =   Exception.tag    () ;     
00105     m_code     =   Exception.code   () ; 
00106     if( 0 != m_previous ) { delete m_previous; m_previous = 0 ; } 
00107     m_previous = ( 0 == Exception.previous() ) ?
00108       0 : Exception.previous()->clone() ; 
00109     return *this; 
00110   }

virtual const std::string& GaudiException::message (  )  const [inline, virtual]

error message to be printed

Definition at line 113 of file GaudiException.h.

00113 { return m_message; }  

virtual const std::string& GaudiException::setMessage ( const std::string &  newMessage  )  [inline, virtual]

update the error message to be printed

Definition at line 116 of file GaudiException.h.

00116                                                                         {
00117     m_message = newMessage; return message() ;
00118   }  

virtual const std::string& GaudiException::tag (  )  const [inline, virtual]

name tag for the exception, or exception type

Definition at line 121 of file GaudiException.h.

00121 { return m_tag; }  

virtual const std::string& GaudiException::setTag ( const std::string &  newTag  )  [inline, virtual]

update name tag

Definition at line 124 of file GaudiException.h.

00124                                                                         {
00125     m_tag = newTag ; return tag() ;
00126   }

virtual const StatusCode& GaudiException::code (  )  const [inline, virtual]

StatusCode for Exception.

Definition at line 129 of file GaudiException.h.

00129 { return m_code; }  

virtual const StatusCode& GaudiException::setCode ( const StatusCode newStatus  )  [inline, virtual]

update the status code for the exception

Definition at line 132 of file GaudiException.h.

00132                                                                            {
00133     m_code = newStatus; return code() ;
00134   } 

virtual GaudiException* GaudiException::previous (  )  const [inline, virtual]

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

Definition at line 137 of file GaudiException.h.

00137 { return m_previous ; } 

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 140 of file GaudiException.h.

00140                                                                    {
00141     os << tag() << " \t " << message() ; 
00142     switch( code() ) {
00143       case StatusCode::SUCCESS : os << "\t StatusCode=SUCCESS"    ;  break ; 
00144       case StatusCode::FAILURE : os << "\t StatusCode=FAILURE"    ;  break ; 
00145       default                  : os << "\t StatusCode=" << code() ;  break ; 
00146     }
00147     return ( 0 != previous() ) ? previous()->printOut( os << std::endl ) : os ;
00148   }; 

virtual MsgStream& GaudiException::printOut ( MsgStream os  )  const [inline, virtual]

Output the exception to the Gaudi MsgStream.

Definition at line 151 of file GaudiException.h.

00151                                                       {
00152     os << tag() << "\t" << message() ; 
00153     switch( code() ) {
00154             case StatusCode::SUCCESS : os << "\t StatusCode=SUCCESS"    ;  break ; 
00155             case StatusCode::FAILURE : os << "\t StatusCode=FAILURE"    ;  break ; 
00156             default                  : os << "\t StatusCode=" << code().getCode() ;  break ; 
00157     }
00158     return ( 0 != previous() ) ? previous()->printOut( os << endreq ) : os ;   
00159   }

virtual GaudiException* GaudiException::clone (  )  const [inline, virtual]

clone operation

Reimplemented in TimeException, and UpdateManagerException.

Definition at line 162 of file GaudiException.h.

00162 { return new GaudiException(*this); }; 

virtual const char* GaudiException::what (  )  const throw () [inline, virtual]

method from std::exception

Definition at line 165 of file GaudiException.h.

00165 { return message().c_str() ; }  


Friends And Related Function Documentation

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

overloaded printout to std::ostream

Definition at line 174 of file GaudiException.h.

00174                                                                        {
00175   return ge.printOut( os );
00176 } 

std::ostream& operator<< ( std::ostream &  os,
const GaudiException pge 
) [friend]

Definition at line 177 of file GaudiException.h.

00178 { return (0 == pge) ?
00179     ( os << " GaudiException* points to NULL!" ) : ( os << *pge ); } 

MsgStream& operator<< ( MsgStream os,
const GaudiException ge 
) [friend]

overloaded printout to MsgStream

Definition at line 182 of file GaudiException.h.

00182                                                                            { 
00183   return ge.printOut( os ); 
00184 } 

MsgStream& operator<< ( MsgStream os,
const GaudiException pge 
) [friend]

overloaded printout to MsgStream

Definition at line 186 of file GaudiException.h.

00186                                                                            { 
00187   return (0 == pge) ?
00188     ( os << " GaudiException* points to NULL!" ) : ( os << *pge );
00189 } 


Member Data Documentation

std::string GaudiException::m_message [mutable, protected]

Definition at line 167 of file GaudiException.h.

std::string GaudiException::m_tag [mutable, protected]

error message

Definition at line 168 of file GaudiException.h.

StatusCode GaudiException::m_code [mutable, protected]

exception tag

Definition at line 169 of file GaudiException.h.

GaudiException* GaudiException::m_previous [mutable, protected]

status code for exception

Definition at line 170 of file GaudiException.h.


The documentation for this class was generated from the following file:
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

Generated on Mon Apr 11 19:57:07 2011 for GaudiKernel by doxygen 1.4.7