-
Notifications
You must be signed in to change notification settings - Fork 128
Exceptions for Error Reporting
williamfgc edited this page May 1, 2017
·
7 revisions
- Debug mode: Exceptions thrown by the code (no by STL functions) must be inside a debug mode condition set in the ADIOS class constructor. Applications are encourages to turn these on when integrating with ADIOS2.
-
Standard exception: Throw C++ standard exceptions for error handling, do not throw integers. This is helpful as it allows handling of different exception types in different ways. In rare cases a custom exceptions must be defined/declared.
-
Don't
throw 1;
-
Do
throw std::invalid_argument ( "ERROR: group was not previously declared, in call to Write" );
-
-
Document exceptions: All error exceptions must start with "ERROR: ". Use informative and precise messages for exception handling to complement the nature of the exception to help the user identify and fix the issue.
-
Don't
throw std::invalid_argument ( "ERROR: invalid input for CompressionParameter" );
-
Do
throw std::invalid_argument( "ERROR: bzip2 CompressionParameter must be an unsigned int between 0 and 9, in call to Compress"" );
-