exceptions.hpp 1.04 KiB
#pragma once
#include <exception>
namespace teqp {
class teqpcException : public std::exception {
public:
const int code;
const std::string msg;
teqpcException(int code, const std::string& msg) : code(code), msg(msg) {};
const char* what() const noexcept override {
return msg.c_str();
}
};
class teqpException : public std::exception {
protected:
const int code;
const std::string msg;
teqpException(int code, const std::string& msg) : code(code), msg(msg) {};
const char* what() const noexcept override {
return msg.c_str();
}
};
// Exceptions related to arguments
class InvalidArgument : public teqpException {
public:
InvalidArgument(const std::string& msg) : teqpException(1, msg) {};
};
// Exceptions related to calculations
class IterationFailure : public teqpException {
public:
IterationFailure(const std::string& msg) : teqpException(100, msg) {};
};
}; // namespace teqp