Exceptions
The cvc5 API communicates certain errors using exceptions. We broadly
distinguish two types of exceptions: CVC5ApiException and CVC5ApiRecoverableException (which is derived from
CVC5ApiException).
If any method fails with a CVC5ApiRecoverableException, the solver behaves as if the failing
method was not called. The solver can still be used safely.
If, however, a method fails with a CVC5ApiException, the associated object may be in an unsafe state
and it should no longer be used.
If the cvc5::parser::InputParser encounters an error, it will
throw a cvc5::parser::ParserException.
If thrown, API objects can still be used
- 
class CVC5ApiException : public std::exception
 Base class for all API exceptions. If thrown, all API objects may be in an unsafe state.
Subclassed by cvc5::CVC5ApiRecoverableException, cvc5::parser::ParserException
Public Functions
- 
inline CVC5ApiException(const std::string &str)
 Construct with message from a string.
- Parameters:
 str – The error message.
- 
inline CVC5ApiException(const std::stringstream &stream)
 Construct with message from a string stream.
- Parameters:
 stream – The error message.
- 
inline const std::string &getMessage() const
 Retrieve the message from this exception.
- Returns:
 The error message.
- 
inline const char *what() const noexcept override
 Retrieve the message as a C-style array.
- Returns:
 The error message.
- 
inline virtual void toStream(std::ostream &os) const
 Printing: feel free to redefine toStream(). When overridden in a derived class, it’s recommended that this method print the type of exception before the actual message.
- 
inline CVC5ApiException(const std::string &str)
 
- 
class CVC5ApiRecoverableException : public cvc5::CVC5ApiException
 A recoverable API exception. If thrown, API objects can still be used.
Subclassed by cvc5::CVC5ApiOptionException, cvc5::CVC5ApiUnsupportedException
Public Functions
- 
inline CVC5ApiRecoverableException(const std::string &str)
 Construct with message from a string.
- Parameters:
 str – The error message.
- 
inline CVC5ApiRecoverableException(const std::stringstream &stream)
 Construct with message from a string stream.
- Parameters:
 stream – The error message.
- 
inline CVC5ApiRecoverableException(const std::string &str)
 
- 
class ParserException : public cvc5::CVC5ApiException
 Base class for all Parser exceptions. If thrown, API objects can still be used
Subclassed by cvc5::parser::ParserEndOfFileException
Public Functions
- 
ParserException()
 Default constructor
- 
ParserException(const std::string &msg)
 Construct with message from a string.
- Parameters:
 msg – The error message.
- 
ParserException(const char *msg)
 Construct with message from a C string.
- Parameters:
 msg – The error message.
- 
ParserException(const std::string &msg, const std::string &filename, unsigned long line, unsigned long column)
 Construct with message from a string.
- Parameters:
 msg – The error message.
filename – name of the file.
line – The error line number.
column – The error column number.
- 
virtual void toStream(std::ostream &os) const override
 Print error to output stream.
- Parameters:
 os – The output stream to write the error on.
- 
std::string getFilename() const
 - Returns:
 The file name.
- 
unsigned long getLine() const
 - Returns:
 The line number of the parsing error.
- 
unsigned long getColumn() const
 - Returns:
 The column number of the parsing error.
- 
ParserException()