ENH: functionObjectList: format errors from FO reading. Fixes #575.

This commit is contained in:
mattijs
2017-10-30 11:43:12 +00:00
parent 4818b5808e
commit a79d2835f1
3 changed files with 26 additions and 13 deletions

View File

@ -250,21 +250,30 @@ void Foam::error::abort()
} }
void Foam::error::write(Ostream& os, const bool includeTitle) const
{
os << nl;
if (includeTitle)
{
os << title().c_str() << endl;
}
os << message().c_str();
if (error::level >= 2 && sourceFileLineNumber())
{
os << nl << nl
<< " From function " << functionName().c_str() << endl
<< " in file " << sourceFileName().c_str()
<< " at line " << sourceFileLineNumber() << '.';
}
}
// * * * * * * * * * * * * * * * IOstream Operators * * * * * * * * * * * * // // * * * * * * * * * * * * * * * IOstream Operators * * * * * * * * * * * * //
Foam::Ostream& Foam::operator<<(Ostream& os, const error& err) Foam::Ostream& Foam::operator<<(Ostream& os, const error& err)
{ {
os << nl err.write(os);
<< err.title().c_str() << endl
<< err.message().c_str();
if (error::level >= 2 && err.sourceFileLineNumber())
{
os << nl << nl
<< " From function " << err.functionName().c_str() << endl
<< " in file " << err.sourceFileName().c_str()
<< " at line " << err.sourceFileLineNumber() << '.';
}
return os; return os;
} }

View File

@ -195,6 +195,9 @@ public:
// Prints stack before exiting. // Prints stack before exiting.
void abort(); void abort();
//- Print error message
void write(Ostream& os, const bool includeTitle = true) const;
// Ostream operator // Ostream operator

View File

@ -788,8 +788,9 @@ bool Foam::functionObjectList::read()
} }
catch (Foam::error& err) catch (Foam::error& err)
{ {
WarningInFunction // Bit of trickery to get the original message
<< "Caught FatalError " << err << nl << endl; err.write(Warning, false);
InfoInFunction << nl << endl;
} }
// Restore previous exception throwing state // Restore previous exception throwing state