userver: userver/ydb/exceptions.hpp Source File
Loading...
Searching...
No Matches
exceptions.hpp
Go to the documentation of this file.
1#pragma once
2
3/// @file userver/ydb/exceptions.hpp
4/// @brief YDB client exceptions
5
6#include <ydb-cpp-sdk/client/types/status/status.h>
7
8#include <stdexcept>
9#include <string>
10#include <string_view>
11
12USERVER_NAMESPACE_BEGIN
13
14namespace ydb {
15
16class BaseError : public std::runtime_error {
17 using std::runtime_error::runtime_error;
18};
19
21public:
22 explicit YdbResponseError(std::string_view operation_name, NYdb::TStatus&& status);
23
24 const NYdb::TStatus& GetStatus() const noexcept;
25
26private:
27 NYdb::TStatus status_;
28};
29
31public:
32 explicit UndefinedDatabaseError(std::string error);
33};
34
36public:
37 explicit EmptyResponseError(std::string_view expected);
38};
39
40class ParseError : public BaseError {
41public:
42 explicit ParseError(std::string error);
43};
44
46public:
47 ColumnParseError(std::string_view column_name, std::string_view message);
48};
49
51public:
52 TypeMismatchError(std::string_view name, std::string_view expected, std::string_view actual);
53};
54
56public:
57 explicit DeadlineExceededError(std::string msg);
58};
59
61public:
62 InvalidTransactionError();
63};
64
66public:
67 OperationCancelledError();
68};
69
71public:
72 ResponseTruncatedError();
73};
74
76public:
77 TransactionForceRollback();
78};
79
81public:
82 IgnoreResultsError(std::string err);
83};
84
85} // namespace ydb
86
87USERVER_NAMESPACE_END