userver: server::http::CustomHandlerException Class Reference
No Matches
server::http::CustomHandlerException Class Reference

#include <userver/server/http/http_error.hpp>

Detailed Description

An extension of server::handlers::CustomHandlerException that allows to specify a custom HttpStatus.

For non-HTTP protocols, the status code will be derived from the attached server::handlers::HandlerErrorCode.

Definition at line 37 of file http_error.hpp.

+ Inheritance diagram for server::http::CustomHandlerException:
+ Collaboration diagram for server::http::CustomHandlerException:

Public Member Functions

template<typename... Args>
 CustomHandlerException (handlers::HandlerErrorCode error_code, HttpStatus http_status, Args &&... args)
HttpStatus GetHttpStatus () const
- Public Member Functions inherited from server::handlers::CustomHandlerException
template<typename... Args>
 CustomHandlerException (HandlerErrorCode handler_code, Args &&... args)
 Construct manually from a set of (mostly optional) arguments, which describe the error details.
 CustomHandlerException (HandlerErrorCode handler_code)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 CustomHandlerException (ServiceErrorCode service_code, ExternalBody external_body, InternalMessage internal_message, HandlerErrorCode handler_code, ExtraHeaders headers={}, formats::json::Value details={})
template<typename MessageBuilder , typename = std::enable_if_t<impl::kIsMessageBuilder<MessageBuilder>>>
 CustomHandlerException (MessageBuilder &&builder, HandlerErrorCode handler_code)
HandlerErrorCode GetCode () const
const std::string & GetServiceCode () const
bool IsExternalErrorBodyFormatted () const
const std::string & GetExternalErrorBody () const
const formats::json::ValueGetDetails () const
const Headers & GetExtraHeaders () const

Additional Inherited Members

- Public Types inherited from server::handlers::CustomHandlerException
using HandlerErrorCode = handlers::HandlerErrorCode
using ServiceErrorCode = handlers::ServiceErrorCode
using InternalMessage = handlers::InternalMessage
using ExternalBody = handlers::ExternalBody
using ExtraHeaders = handlers::ExtraHeaders

Constructor & Destructor Documentation

◆ CustomHandlerException()

template<typename... Args>
server::http::CustomHandlerException::CustomHandlerException ( handlers::HandlerErrorCode error_code,
HttpStatus http_status,
Args &&... args )
See also
server::handlers::CustomHandlerException for the description of how args that can augment error messages.
TEST(CustomHandlerException, DirectHttpSample) {
server::handlers::ExternalBody{"The provided password is too short"});
EXPECT_EQ(exc.GetExternalErrorBody(), "The provided password is too short");
EXPECT_THAT(exc.what(), testing::HasSubstr("Client error"));

Definition at line 43 of file http_error.hpp.

Member Function Documentation

◆ GetHttpStatus()

HttpStatus server::http::CustomHandlerException::GetHttpStatus ( ) const

Definition at line 49 of file http_error.hpp.

The documentation for this class was generated from the following file: