4 #include "../util/log.hpp"
10 class RuntimeError :
public std::exception {
12 RuntimeError(
const Instance &instance,
int seed,
int fault_code, std::string reason = std::string(
"")) noexcept;
14 virtual
unsigned int EXCEPTION_ID()
const {
return 0 ; };
17 const Instance &get_instance()
const;
18 std::string get_reason()
const;
19 int get_fault_code()
const;
20 const std::vector<std::string> get_backtrace()
const;
27 std::vector<std::string> bt;
30 class InconsistentResultError :
public RuntimeError {
32 InconsistentResultError(
const Instance &instance,
int seed,
int fault_code_in,
33 std::string reason = std::string(
"")) noexcept;
35 virtual
unsigned int EXCEPTION_ID()
const {
return 1 ; };
38 class InconsistentDataError :
public RuntimeError {
40 InconsistentDataError(
const Instance &instance,
int seed,
int fault_code_in,
41 std::string reason = std::string(
"")) noexcept;
43 virtual
unsigned int EXCEPTION_ID()
const {
return 2 ; };
46 class ConfigurationError :
public RuntimeError {
48 ConfigurationError(
const Instance &instance,
int seed,
int fault_code_in,
49 std::string reason = std::string(
"")) noexcept;
51 virtual
unsigned int EXCEPTION_ID()
const {
return 3 ; };
54 class IOError :
public RuntimeError {
56 IOError(
const Instance &instance,
int seed,
int fault_code_in,
57 std::string reason = std::string(
"")) noexcept;
59 virtual
unsigned int EXCEPTION_ID()
const {
return 4 ; };
65 ErrorHandler(Storage &storage, std::string solver_id, std::string run_id,
66 std::string config_id_in,
const SolverConfig *sconf_in =
nullptr);
67 void handle(
const RuntimeError &exception);
70 void handle_log(
const RuntimeError &exception);
71 void handle_db(
const RuntimeError &exception);
72 void handle_fail(
const RuntimeError &exception);
75 std::string solver_id;
77 std::string config_id;
78 const SolverConfig * sconf;