Files
openmethod/doc/error_handler.adoc
2025-09-05 15:28:45 -04:00

61 lines
1.1 KiB
Plaintext

## error_handler
### Synopsis
Defined in <boost/openmethod/policies/basic_policy.hpp>.
```c++
namespace boost::openmethod {
namespace policies {
struct error_handler;
}
struct openmethod_error {};
struct not_implemented_error : openmethod_error {
type_id method;
std::size_t arity;
static constexpr std::size_t max_types = 16;
type_id types[max_types];
};
struct unknown_class_error : openmethod_error {
type_id type;
};
struct hash_search_error : openmethod_error {
std::size_t attempts;
std::size_t buckets;
};
struct type_mismatch_error : openmethod_error {
type_id type;
};
}
```
### Description
`error_handler` is a policy that handles errors.
When an error is encountered, either during `initialize` or method dispatch, the
program is terminated via a call to `abort`. If this policy is present in the
policy, its `error` function is called with an error object. It can prevent
termination by throwing an exception.
### Requirements
Implementations of `error_handler` must provide the following functions:
#### error
```c++
static auto error(const T&) -> void;
```