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!)
GaudiException & operator= (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 StatusCode & code () const
 StatusCode for Exception.
virtual const StatusCode & setCode (const StatusCode &newStatus)
 update the status code for the exception
virtual GaudiException * previous () 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 MsgStream & printOut (MsgStream &os) const
 Output the exception to the Gaudi MsgStream.
virtual GaudiException * clone () 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
GaudiException * m_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)
MsgStream & operator<< (MsgStream &os, const GaudiException &ge)
 overloaded printout to MsgStream
MsgStream & operator<< (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