userver: server::http::CustomHandlerException Class Reference
Loading...
Searching...
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 )
inline
See also
server::handlers::CustomHandlerException for the description of how args that can augment error messages.
TEST(CustomHandlerException, DirectHttpSample) {
server::http::HttpStatus::kUnprocessableEntity,
server::handlers::ExternalBody{"The provided password is too short"});
server::http::HttpStatus::kUnprocessableEntity);
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
inline

Definition at line 49 of file http_error.hpp.


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