3.2.4. Error.hpp¶
This file contains the functionality used for reporting errors.
In the description of the exceptions we use the standard terminology (see e.g., Exception Safety).
If nothing else is specified a thrown exception from MØD provides no exception safety.
Any exception thrown from MØD or any dependencies are intended to derive from std::exception,
and any exception from MØD derives from Exception.
The exceptions are in general only thrown from the outermost interface, and not from within the mod::lib namespace.
3.2.4.1. Class Stacktrace¶
- 
class Stacktrace¶
- A class encapsulating the current stacktrace at construction time. Stacktraces may not be supported on all platforms. 
3.2.4.1.1. Synopsis¶
- 
Stacktrace(unsigned int frameLimit, unsigned int numSkip)
- 
void print(unsigned int frameLimit, std::ostream &s) const
3.2.4.1.2. Details¶
- 
Stacktrace(unsigned int frameLimit, unsigned int numSkip)¶
- Capture a stacktrace with at most frameLimit frames and without the first numSkip frames. The frame from the constructor itself is always skipped. 
- 
void print(unsigned int frameLimit, std::ostream &s) const¶
- Print at most the first frameLimit frames from the capture stacktrace. Use 0 to print all available frames. Symbol names will be demangled if possible. 
3.2.4.2. Class Exception¶
- 
class Exception : public std::exception¶
- The base class of all MØD exceptions. 
3.2.4.2.1. Synopsis¶
- 
virtual std::string getName() const = 0
- 
virtual const char *what() const noexcept
- 
void printStacktrace(unsigned int frameLimit, std::ostream &s) const
- 
void append(const std::string &text)
3.2.4.2.2. Details¶
- 
virtual std::string getName() const = 0¶
- Returns:
- the name of the exception. 
 
- 
virtual const char *what() const noexcept¶
- Returns:
- the description for the exception. 
 
- 
void printStacktrace(unsigned int frameLimit, std::ostream &s) const¶
- Print the stacktrace captured when the exception was constructed. See - Stacktrace::print().
- 
void append(const std::string &text)¶
- Append text to the exception message. 
3.2.4.3. Class FatalError¶
- 
class FatalError : public Exception¶
- When thrown there is no exception safety. It is not safe to continue after catching it. 
3.2.4.3.1. Synopsis¶
3.2.4.4. Class InputError¶
- 
class InputError : public Exception¶
- When thrown there is strong exception safety. This exception is thrown when bad data has been provided to a loading function. 
3.2.4.4.1. Synopsis¶
3.2.4.5. Class LogicError¶
- 
class LogicError : public Exception¶
- When thrown there is strong exception safety. This exception is thrown when a pre-condition of a function is violated. 
3.2.4.5.1. Synopsis¶
3.2.4.6. Class TermParsingError¶
- 
class TermParsingError : public Exception¶
- When thrown there is at least basic exception safety. This exception is thrown if - LabelType::Termis used and parsing of a string into a first-order term fails.
3.2.4.6.1. Synopsis¶
3.2.4.7. Class StereoDeductionError¶
- 
class StereoDeductionError : public Exception¶
- When thrown there is at least basic exception safety. This exception is thrown if stereo data is requested and deduction failed.