userver: userver/engine/exception.hpp Source File
⚠️ This is the documentation for an old userver version. Click here to switch to the latest version.
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages Concepts
exception.hpp
Go to the documentation of this file.
1#pragma once
2
3/// @file userver/engine/exception.hpp
4/// @brief Coroutine engine exceptions
5
6#include <stdexcept>
7
8#include <userver/engine/task/cancel.hpp>
9
10USERVER_NAMESPACE_BEGIN
11
12namespace engine {
13
14/// Thrown if a wait operation on the current task has been interrupted, usually
15/// due to a timeout or cancellation
16class WaitInterruptedException : public std::runtime_error {
17 public:
18 explicit WaitInterruptedException(TaskCancellationReason reason);
19
20 TaskCancellationReason Reason() const noexcept;
21
22 private:
23 const TaskCancellationReason reason_;
24};
25
26/// Thrown if a `TaskWithResult`, for which we were waiting, got cancelled
27class TaskCancelledException : public std::runtime_error {
28 public:
29 explicit TaskCancelledException(TaskCancellationReason reason);
30
31 TaskCancellationReason Reason() const noexcept;
32
33 private:
34 const TaskCancellationReason reason_;
35};
36
37} // namespace engine
38
39USERVER_NAMESPACE_END