userver: server::http::CustomHandlerException Class Reference
⚠️ This is the documentation for an old userver version. Click here to switch to the latest version.
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages Concepts
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: