G4ExceptionHandler Class Reference

#include <G4ExceptionHandler.hh>

Inheritance diagram for G4ExceptionHandler:

G4VExceptionHandler

Public Member Functions

 G4ExceptionHandler ()
virtual ~G4ExceptionHandler ()
G4int operator== (const G4ExceptionHandler &right) const
G4int operator!= (const G4ExceptionHandler &right) const
virtual G4bool Notify (const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)

Detailed Description

Definition at line 56 of file G4ExceptionHandler.hh.


Constructor & Destructor Documentation

G4ExceptionHandler::G4ExceptionHandler (  ) 

Definition at line 44 of file G4ExceptionHandler.cc.

00045 {
00046 }

G4ExceptionHandler::~G4ExceptionHandler (  )  [virtual]

Definition at line 48 of file G4ExceptionHandler.cc.

00049 {
00050 }


Member Function Documentation

G4bool G4ExceptionHandler::Notify ( const char *  originOfException,
const char *  exceptionCode,
G4ExceptionSeverity  severity,
const char *  description 
) [virtual]

Implements G4VExceptionHandler.

Definition at line 72 of file G4ExceptionHandler.cc.

References G4RunManager::AbortEvent(), G4RunManager::AbortRun(), EventMustBeAborted, FatalErrorInArgument, FatalException, G4cerr, G4cout, G4endl, G4State_EventProc, G4State_GeomClosed, G4StateManager::GetCurrentState(), G4RunManager::GetRunManager(), G4StateManager::GetStateManager(), and RunMustBeAborted.

00076 {
00077   static const G4String es_banner
00078     = "\n-------- EEEE ------- G4Exception-START -------- EEEE -------\n";
00079   static const G4String ee_banner
00080     = "\n-------- EEEE -------- G4Exception-END --------- EEEE -------\n";
00081   static const G4String ws_banner
00082     = "\n-------- WWWW ------- G4Exception-START -------- WWWW -------\n";
00083   static const G4String we_banner
00084     = "\n-------- WWWW -------- G4Exception-END --------- WWWW -------\n";
00085   std::ostringstream message;
00086   message << "*** G4Exception : " << exceptionCode << G4endl
00087           << "      issued by : " << originOfException << G4endl
00088           << description << G4endl;
00089   G4bool abortionForCoreDump = false;
00090   G4ApplicationState aps = G4StateManager::GetStateManager()->GetCurrentState();
00091   switch(severity)
00092   {
00093    case FatalException:
00094     G4cerr << es_banner << message.str() << "*** Fatal Exception *** core dump ***"
00095            << ee_banner << G4endl;
00096     abortionForCoreDump = true;
00097     break;
00098    case FatalErrorInArgument:
00099     G4cerr << es_banner << message.str() << "*** Fatal Error In Argument *** core dump ***"
00100            << ee_banner << G4endl;
00101     abortionForCoreDump = true;
00102     break;
00103    case RunMustBeAborted:
00104     if(aps==G4State_GeomClosed || aps==G4State_EventProc)
00105     {
00106       G4cerr << es_banner << message.str() << "*** Run Must Be Aborted ***"
00107              << ee_banner << G4endl;
00108       G4RunManager::GetRunManager()->AbortRun(false);
00109     }
00110     abortionForCoreDump = false;
00111     break;
00112    case EventMustBeAborted:
00113     if(aps==G4State_EventProc)
00114     {
00115       G4cerr << es_banner << message.str() << "*** Event Must Be Aborted ***"
00116              << ee_banner << G4endl;
00117       G4RunManager::GetRunManager()->AbortEvent();
00118     }
00119     abortionForCoreDump = false;
00120     break;
00121    default:
00122     G4cout << ws_banner << message.str() << "*** This is just a warning message. ***"
00123            << we_banner << G4endl;
00124     abortionForCoreDump = false;
00125     break;
00126   }
00127   return abortionForCoreDump;
00128 }

G4int G4ExceptionHandler::operator!= ( const G4ExceptionHandler right  )  const

Definition at line 67 of file G4ExceptionHandler.cc.

00068 {
00069    return (this != &right);
00070 }

G4int G4ExceptionHandler::operator== ( const G4ExceptionHandler right  )  const

Definition at line 62 of file G4ExceptionHandler.cc.

00063 {
00064    return (this == &right);
00065 }


The documentation for this class was generated from the following files:
Generated on Mon May 27 17:51:56 2013 for Geant4 by  doxygen 1.4.7