| # Gaudi Framework, version v22r4 |

Home |  | Generated: Fri Sep 2 2011

Public Member Functions | Protected Attributes | Static Protected Attributes | Friends

# 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!)
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
## Static Protected Attributes
static bool | s_proc
| "previous" element in the linked list
## Friends
class | StatusCode
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

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

        : m_message    ( Message    )
        , m_tag        ( Tag        )
        , m_code       ( Code       )
        , m_previous   (     0      )
        { s_proc = true; }

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

        : m_message    ( Message            )
        , m_tag        ( Tag                )
        , m_code       ( Code               )
        , m_previous   ( Exception.clone()  )
        {}

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

        : m_message    ( Message    )
        , m_tag        ( Tag        )
        , m_code       ( Code       )
        , m_previous   (     0      )
        {
          s_proc = true;
          m_message += ": " + System::typeinfoName(typeid(Exception)) + ", " +
                       Exception.what();
        }

GaudiException::GaudiException | ( | const GaudiException & | Exception ) | `[inline]`

Copy constructor (deep copying!)

Definition at line 88 of file GaudiException.h.

                                                        : std::exception(Exception)
      {
        s_proc     = true;
        m_message  =   Exception.message() ;
        m_tag      =   Exception.tag    () ;
        m_code     =   Exception.code   () ;
        m_previous = ( 0 == Exception.previous() ) ?
          0 : Exception.previous()->clone() ;
      }

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

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

Definition at line 99 of file GaudiException.h.

                                        {
        m_code.setChecked();
        if( 0 != m_previous ) { delete m_previous ; m_previous = 0 ; }
        s_proc = false;
      }

## Member Function Documentation

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

clone operation

Reimplemented in UpdateManagerException.

Definition at line 167 of file GaudiException.h.

    { return new GaudiException(*this); }

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

StatusCode for Exception.

Definition at line 134 of file GaudiException.h.

    { return m_code; }

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

error message to be printed

Definition at line 118 of file GaudiException.h.

    { return m_message; }

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

assignment operator

Definition at line 106 of file GaudiException.h.

                                                                   {
        if ( &Exception == this ) { return *this; }
        m_message  =   Exception.message() ;
        m_tag      =   Exception.tag    () ;
        m_code     =   Exception.code   () ;
        if( 0 != m_previous ) { delete m_previous; m_previous = 0 ; }
        m_previous = ( 0 == Exception.previous() ) ?
          0 : Exception.previous()->clone() ;
        return *this;
      }

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

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

Definition at line 142 of file GaudiException.h.

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

                                                                       {
        os << tag() << " \t " << message() ;
        switch( code() ) {
          case StatusCode::SUCCESS : os << "\t StatusCode=SUCCESS"    ;  break ;
          case StatusCode::FAILURE : os << "\t StatusCode=FAILURE"    ;  break ;
          default                  : os << "\t StatusCode=" << code() ;  break ;
        }
        return ( 0 != previous() ) ? previous()->printOut( os << std::endl ) : os ;
      }

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

Output the exception to the Gaudi MsgStream.

Definition at line 156 of file GaudiException.h.

                                                          {
        os << tag() << "\t" << message() ;
        switch( code() ) {
                case StatusCode::SUCCESS : os << "\t StatusCode=SUCCESS"    ;  break ;
                case StatusCode::FAILURE : os << "\t StatusCode=FAILURE"    ;  break ;
                default                  : os << "\t StatusCode=" << code().getCode() ;  break ;
        }
        return ( 0 != previous() ) ? previous()->printOut( os << endmsg ) : os ;
      }

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

update the status code for the exception

Definition at line 137 of file GaudiException.h.

                                                                               {
        m_code = newStatus; return code() ;
      }

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

update the error message to be printed

Definition at line 121 of file GaudiException.h.

                                                                            {
        m_message = newMessage; return message() ;
      }

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

update name tag

Definition at line 129 of file GaudiException.h.

                                                                            {
        m_tag = newTag ; return tag() ;
      }

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

name tag for the exception, or exception type

Definition at line 126 of file GaudiException.h.

    { return m_tag; }

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

method from std::exception

Reimplemented from std::exception.

Definition at line 170 of file GaudiException.h.

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

                                                                           {
      return ge.printOut( os );
    }

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

overloaded printout to MsgStream

Definition at line 192 of file GaudiException.h.

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

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

overloaded printout to MsgStream

Definition at line 188 of file GaudiException.h.

                                                                               {
      return ge.printOut( os );
    }

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

Definition at line 183 of file GaudiException.h.

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

friend class StatusCode`[friend]`

Definition at line 34 of file GaudiException.h.

## Member Data Documentation

StatusCode GaudiException::m_code`[mutable, protected]`

exception tag

Definition at line 174 of file GaudiException.h.

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

Definition at line 172 of file GaudiException.h.

GaudiException* GaudiException::m_previous`[mutable, protected]`

status code for exception

Definition at line 175 of file GaudiException.h.

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

error message

Definition at line 173 of file GaudiException.h.

bool GaudiException::s_proc`[static, protected]`

"previous" element in the linked list

Definition at line 176 of file GaudiException.h.

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

- /afs/cern.ch/sw/Gaudi/releases/GAUDI/GAUDI_v22r4/GaudiKernel/GaudiKernel/GaudiException.h
- /afs/cern.ch/sw/Gaudi/releases/GAUDI/GAUDI_v22r4/GaudiKernel/src/Lib/GaudiException.cpp

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines