## error_handler ### Synopsis Defined in . ```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; ```