Error Handling¶
Two classes of error are produced by the library: exceptions and warnings.
Exceptions¶
Exceptions are thrown by the library for severe errors which prevent the requested operation from being completed. All errors thrown by the library are defined in File exceptions.hpp
Notably, this library does not yet implement all features of [bs2127];
when such a feature is used, a not_implemented will be thrown.
Warnings¶
Warnings are issued in less severe cases, where the requested operation could still be completed. Warnings are generally issued for user-facing problems, such as errors in metadata, and so should be visible to the user.
Warnings are returned from the library through the warnings_cb argument to
::calculate methods on GainCalculator objects (for example
GainCalculatorObjects::calculate()). Each time a warning is issued, the
provided callback will be called with a Warning structure, containing
the type and message of the warning. By default, default_warning_cb is
used for this argument, which will print warnings to stderr.
Warning structures are defines in File warnings.hpp.