Class to handle errors and exceptions in a simple, consistent stream-based manner. More...
Public Member Functions | |
error (const string &title) | |
Construct from title string. More... | |
error (const dictionary &errDict) | |
Construct from dictionary. More... | |
error (const error &err) | |
Copy construct. More... | |
virtual | ~error () noexcept |
Destructor. More... | |
string | message () const |
The accumulated error message. More... | |
void | clear () const |
Clear any messages. More... | |
const string & | functionName () const noexcept |
The currently defined function name for output messages. More... | |
const string & | sourceFileName () const noexcept |
The currently defined source-file name for output messages. More... | |
label | sourceFileLineNumber () const noexcept |
The currently defined source-file line number for output messages. More... | |
bool | throwing () const noexcept |
Return the current exception throwing state (on or off) More... | |
bool | throwing (const bool on) noexcept |
Specify exception throwing state (on or off) More... | |
OSstream & | stream () |
Return OSstream for output operations. More... | |
operator OSstream & () | |
Implicit cast to OSstream for << operations. More... | |
OSstream & | operator() () |
Explicit convert to OSstream for << operations. More... | |
OSstream & | operator() (const string &functionName) |
Define basic print message. More... | |
OSstream & | operator() (const char *functionName, const char *sourceFileName, const int sourceFileLineNumber=0) |
Define basic print message. More... | |
OSstream & | operator() (const string &functionName, const char *sourceFileName, const int sourceFileLineNumber=0) |
Define basic print message. More... | |
operator dictionary () const | |
Extract a dictionary representation of the error information. More... | |
void | exit (const int errNo=1) |
Exit : can be called for any error to exit program. More... | |
void | abort () |
Abort : used to stop code for fatal errors. More... | |
virtual void | write (Ostream &os, const bool withTitle=true) const |
Print error message. More... | |
bool | throwExceptions (const bool on=true) noexcept |
Specify exception throwing state (default is on) More... | |
bool | dontThrowExceptions () noexcept |
Deactivate exception throwing. More... | |
Static Public Member Functions | |
static bool | master (const label communicator=-1) |
static bool | warnAboutAge (const int version) noexcept |
Test if an age warning should be emitted. More... | |
static bool | warnAboutAge (const char *what, const int version) |
Emit warning on stderr about something being old. More... | |
static void | safePrintStack (std::ostream &os) |
static void | printStack (Ostream &os) |
Helper function to print a stack. More... | |
static bool | useAbort () |
True if FOAM_ABORT is on. More... | |
Protected Member Functions | |
void | simpleExit (const int errNo, const bool isAbort) |
Exit or abort, without throwing or job control handling. More... | |
Protected Attributes | |
string | functionName_ |
string | sourceFileName_ |
label | sourceFileLineNumber_ |
bool | throwing_ |
std::unique_ptr< OStringStream > | messageStreamPtr_ |
Additional Inherited Members | |
Message type, error severity flags. More... |
Class to handle errors and exceptions in a simple, consistent stream-based manner.
The error class is globally instantiated with a title string. Errors, messages and other data are piped to the messageStream class in the standard manner. Manipulators are supplied for exit and abort that may terminate the program or throw an exception depending on whether the exception handling has been switched on (off by default).
|
explicit |
|
protected |
Exit or abort, without throwing or job control handling.
Definition at line 253 of file error.C.
References Foam::abort(), UPstream::abort(), Foam::endl(), Foam::exit(), UPstream::exit(), Foam::nl, UPstream::parRun(), Foam::Perr, error::printStack(), and error::useAbort().
|
static |
Like Pstream::master but with a Pstream::parRun guard in case Pstream has not yet been initialised.
communicator | is the numbered MPI communicator. By default it uses UPstream::worldComm |
Definition at line 41 of file error.C.
References UPstream::master(), and UPstream::parRun().
Referenced by Foam::expandLeadingTilde(), and Foam::warnCompatDegrees().
|
staticnoexcept |
Test if an age warning should be emitted.
version | is the old version (YYMM) for determining the age in months compared to the current OpenFOAM version as conveyed by the foamVersion::api value. |
Definition at line 55 of file error.C.
References Foam::foamVersion::api, and Foam::foamVersion::version.
Referenced by Foam::expandLeadingTilde(), and timeControl::read().
|
static |
Emit warning on stderr about something being old.
what | description for the warning |
version | is the old version (YYMM) for determining the age in months compared to the current OpenFOAM version as conveyed by the foamVersion::api value. |
Definition at line 62 of file error.C.
References Foam::foamVersion::api, Foam::endl(), and Foam::foamVersion::version.
Foam::string message | ( | ) | const |
The accumulated error message.
Definition at line 319 of file error.C.
Referenced by snappyLayerDriver::addLayers(), and motionSmootherAlgo::checkMesh().
void clear | ( | ) | const |
Clear any messages.
Definition at line 325 of file error.C.
Referenced by motionSmootherAlgo::checkMesh().
|
inlinenoexcept |
The currently defined function name for output messages.
Definition at line 151 of file error.H.
References error::functionName_.
|
inlinenoexcept |
The currently defined source-file name for output messages.
Definition at line 157 of file error.H.
References error::sourceFileName_.
|
inlinenoexcept |
The currently defined source-file line number for output messages.
Definition at line 163 of file error.H.
References error::sourceFileLineNumber_.
|
inlinenoexcept |
Return the current exception throwing state (on or off)
Definition at line 169 of file error.H.
References error::throwing_.
Referenced by functionObjectList::end(), functionObjectList::execute(), if(), IOobjectList::IOobjectList(), and functionObjectList::read().
Foam::OSstream & stream | ( | ) |
Return OSstream for output operations.
Definition at line 304 of file error.C.
References Foam::abort(), Foam::endl(), Foam::nl, and Foam::Perr.
Referenced by error::operator OSstream &(), error::operator()(), and Time::readDict().
|
inline |
Implicit cast to OSstream for << operations.
Definition at line 190 of file error.H.
References error::stream().
|
inline |
Explicit convert to OSstream for << operations.
Definition at line 196 of file error.H.
References error::stream().
Foam::OSstream & operator() | ( | const string & | functionName | ) |
Foam::OSstream & operator() | ( | const char * | functionName, |
const char * | sourceFileName, | ||
const int | sourceFileLineNumber = 0 |
||
) |
Foam::OSstream & operator() | ( | const string & | functionName, |
const char * | sourceFileName, | ||
const int | sourceFileLineNumber = 0 |
||
) |
operator dictionary | ( | ) | const |
Extract a dictionary representation of the error information.
|
static |
Helper function to print a stack, used when OpenFOAM IO not yet initialised.
Definition at line 32 of file dummyPrintStack.C.
|
static |
Helper function to print a stack.
Definition at line 36 of file dummyPrintStack.C.
Referenced by UPstream::allToAll(), Foam::exitNow(), messageStream::masterStream(), Foam::reduce(), and error::simpleExit().
|
static |
True if FOAM_ABORT is on.
Definition at line 98 of file error.C.
References Switch::find(), and Foam::getEnv().
Referenced by Foam::exitNow(), and error::simpleExit().
void exit | ( | const int | errNo = 1 | ) |
Exit : can be called for any error to exit program.
Redirects to abort() when FOAM_ABORT is on.
Definition at line 331 of file error.C.
Referenced by Foam::exit(), and if().
void abort | ( | ) |
Abort : used to stop code for fatal errors.
Prints stack before exiting.
Definition at line 337 of file error.C.
Referenced by Foam::abort().
Print error message.
Reimplemented in IOerror.
Definition at line 343 of file error.C.
References Foam::foamVersion::api, IOstream::bad(), messageStream::level, Foam::nl, os(), Foam::foamVersion::patch, and Foam::foamVersion::patched().
Referenced by functionObjectList::end(), functionObjectList::execute(), Foam::operator<<(), argList::parse(), and functionObjectList::read().
|
inlinenoexcept |
|
protected |
Definition at line 88 of file error.H.
Referenced by error::functionName().
|
protected |
Definition at line 89 of file error.H.
Referenced by error::sourceFileName().
|
protected |
Definition at line 90 of file error.H.
Referenced by error::sourceFileLineNumber().
|
protected |
Definition at line 91 of file error.H.
Referenced by error::throwing().
|
protected |