Error handling
Omega includes an error handling facility that checks for potential errors
and responds to those errors when encountered.
It uses the Logging facility for writing the error
messages so its behavior follows that of Logging. In particular, the error
messages will be output to a single log file (omega.log by default, see the
OMEGA_LOG_FILE environment variable) unless logging on more than one MPI
task is requested with OMEGA_LOG_TASKS, in which case each logging task
writes its own file. Each message
will have the format
[*level] [file:line number] error message
where level is the severity (warn, error, critical) and file and line number
refer to the source code line where the error occurs. The error facility
sometimes accumulates multiple error messages before aborting. In
these cases, the most recent error in these accumulated errors will be printed
first and the other error messages in the chain will be printed in reverse
order and indented. For critical errors, a full stack trace is generated
if debug information is available, either with the -g compiler
option or a DEBUG build using -DOMEGA_BUILD_TYPE=Debug during the Cmake
configuration.