libimgdoc2
Loading...
Searching...
No Matches
exceptions.h
1// SPDX-FileCopyrightText: 2023 Carl Zeiss Microscopy GmbH
2//
3// SPDX-License-Identifier: MIT
4
5#pragma once
6
7#include <stdexcept>
8#include <string>
9
10#include "types.h"
11
12namespace imgdoc2
13{
15 class imgdoc2_exception : public std::runtime_error
16 {
17 public:
20 explicit imgdoc2_exception(const char* error_message)
21 : std::runtime_error(error_message)
22 {}
23 };
24
27 {
28 private:
29 int sqlite_errorcode_;
30 bool sqlite_errorcode_valid_;
31 public:
32 database_exception() = delete;
33
36 explicit database_exception(const char* error_message)
37 : imgdoc2_exception(error_message), sqlite_errorcode_(-1), sqlite_errorcode_valid_(false)
38 {}
39
43 explicit database_exception(const char* error_message, int sqlite_error_code)
44 : imgdoc2_exception(error_message), sqlite_errorcode_(sqlite_error_code), sqlite_errorcode_valid_(true)
45 {}
46
49 bool GetIsSqliteErrorCodeValid() const { return this->sqlite_errorcode_valid_; }
50
53 int GetSqliteErrorCode() const { return this->sqlite_errorcode_; }
54
57 std::string GetSqliteErrorMessage() const;
58 };
59
62 {
63 public:
66 explicit invalid_operation_exception(const char* error_message)
67 : imgdoc2_exception(error_message)
68 {}
69 };
70
73 {
74 public:
77 explicit discovery_exception(const char* error_message)
78 : imgdoc2_exception(error_message)
79 {}
80
83 explicit discovery_exception(const std::string& error_message)
84 : discovery_exception(error_message.c_str())
85 {}
86 };
87
90 {
91 public:
94 explicit invalid_argument_exception(const char* error_message)
95 : imgdoc2_exception(error_message)
96 {}
97 };
98
101 {
102 private:
103 bool index_valid_{ false };
104 imgdoc2::dbIndex index_{ 0 };
105 public:
107
111 explicit non_existing_tile_exception(const std::string& error_message, imgdoc2::dbIndex index)
112 : non_existing_tile_exception(error_message.c_str(), index)
113 {}
114
118 explicit non_existing_tile_exception(const char* error_message, imgdoc2::dbIndex index)
119 : imgdoc2_exception(error_message),
120 index_valid_(true),
121 index_(index)
122 {}
123
126 [[nodiscard]] bool IsIndexValid() const { return this->index_valid_; }
127
131 [[nodiscard]] imgdoc2::dbIndex GetIndex() const { return this->index_; }
132 };
133
136 {
137 public:
138 invalid_path_exception() = delete;
139
142 explicit invalid_path_exception(const std::string& error_message)
143 : imgdoc2_exception(error_message.c_str())
144 {}
145
148 explicit invalid_path_exception(const char* error_message)
149 : imgdoc2_exception(error_message)
150 {}
151 };
152
155 {
156 private:
157 bool index_valid_{ false };
158 imgdoc2::dbIndex index_{ 0 };
159 public:
161
165 explicit non_existing_item_exception(const std::string& error_message, imgdoc2::dbIndex index)
166 : non_existing_item_exception(error_message.c_str(), index)
167 {}
168
172 explicit non_existing_item_exception(const char* error_message, imgdoc2::dbIndex index)
173 : imgdoc2_exception(error_message),
174 index_valid_(true),
175 index_(index)
176 {}
177
180 [[nodiscard]] bool IsIndexValid() const { return this->index_valid_; }
181
185 [[nodiscard]] imgdoc2::dbIndex GetIndex() const { return this->index_; }
186 };
187
190 {
191 public:
192 internal_error_exception() = delete;
193
196 explicit internal_error_exception(const std::string& error_message)
197 : imgdoc2_exception(error_message.c_str())
198 {}
199 };
200}
Exception for signalling database errors.
Definition: exceptions.h:27
bool GetIsSqliteErrorCodeValid() const
Definition: exceptions.h:49
int GetSqliteErrorCode() const
Definition: exceptions.h:53
database_exception(const char *error_message, int sqlite_error_code)
Definition: exceptions.h:43
std::string GetSqliteErrorMessage() const
database_exception(const char *error_message)
Definition: exceptions.h:36
Exception for signalling logical errors during database-discovery.
Definition: exceptions.h:73
discovery_exception(const char *error_message)
Definition: exceptions.h:77
discovery_exception(const std::string &error_message)
Definition: exceptions.h:83
Base class for all imgdoc2-specific exceptions.
Definition: exceptions.h:16
imgdoc2_exception(const char *error_message)
Definition: exceptions.h:20
Exception for signalling an unexpected internal error condition.
Definition: exceptions.h:190
internal_error_exception(const std::string &error_message)
Definition: exceptions.h:196
Exception for signalling invalid arguments.
Definition: exceptions.h:90
invalid_argument_exception(const char *error_message)
Definition: exceptions.h:94
Exception for signalling that an operation is not allowed in the current state.
Definition: exceptions.h:62
invalid_operation_exception(const char *error_message)
Definition: exceptions.h:66
Exception for signalling that an invalid path was specified.
Definition: exceptions.h:136
invalid_path_exception(const std::string &error_message)
Definition: exceptions.h:142
invalid_path_exception(const char *error_message)
Definition: exceptions.h:148
Exception for signalling that an attempt was made to access an non existing metadata item.
Definition: exceptions.h:155
non_existing_item_exception(const std::string &error_message, imgdoc2::dbIndex index)
Definition: exceptions.h:165
bool IsIndexValid() const
Definition: exceptions.h:180
non_existing_item_exception(const char *error_message, imgdoc2::dbIndex index)
Definition: exceptions.h:172
imgdoc2::dbIndex GetIndex() const
Definition: exceptions.h:185
Exception for signalling that an attempt was made to access an non existing tile.
Definition: exceptions.h:101
bool IsIndexValid() const
Definition: exceptions.h:126
non_existing_tile_exception(const std::string &error_message, imgdoc2::dbIndex index)
Definition: exceptions.h:111
non_existing_tile_exception(const char *error_message, imgdoc2::dbIndex index)
Definition: exceptions.h:118
imgdoc2::dbIndex GetIndex() const
Definition: exceptions.h:131