Gaudi Framework, version v20r3

Generated: 24 Nov 2008

GaudiException Class Reference

#include <GaudiKernel/GaudiException.h>

Inheritance diagram for GaudiException:

Inheritance graph
[legend]
Collaboration diagram for GaudiException:

Collaboration graph
[legend]

List of all members.


Detailed Description

Define general base for Gaudi exception.

Author:
Vanya Belyaev

Sebastien Ponce

Definition at line 24 of file GaudiException.h.


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

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 ( void   )  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.

status code for exception

Definition at line 170 of file GaudiException.h.


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

Generated at Mon Nov 24 14:45:18 2008 for Gaudi Framework, version v20r3 by Doxygen version 1.5.6 written by Dimitri van Heesch, © 1997-2004