userver: userver/engine/exception.hpp Source File
Loading...
Searching...
No Matches
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 {
17public:
18 explicit WaitInterruptedException(TaskCancellationReason reason);
19
20 TaskCancellationReason Reason() const noexcept;
21
22private:
23 const TaskCancellationReason reason_;
24};
25
26/// Thrown if a `TaskWithResult`, for which we were waiting, got cancelled
27class TaskCancelledException : public std::runtime_error {
28public:
29 explicit TaskCancelledException(TaskCancellationReason reason);
30
31 TaskCancellationReason Reason() const noexcept;
32
33private:
34 const TaskCancellationReason reason_;
35};
36
37} // namespace engine
38
39USERVER_NAMESPACE_END