Crossfire Server, Trunk
nlohmann::detail::exception Class Reference

general exception of the basic_json class More...

#include <json.hpp>

+ Inheritance diagram for nlohmann::detail::exception:
+ Collaboration diagram for nlohmann::detail::exception:

Public Member Functions

const char * what () const noexcept override
 returns the explanatory string More...
 

Data Fields

const int id
 the id of the exception More...
 

Protected Member Functions

 exception (int id_, const char *what_arg)
 

Static Protected Member Functions

template<typename BasicJsonType >
static std::string diagnostics (const BasicJsonType &leaf_element)
 
static std::string name (const std::string &ename, int id_)
 

Private Attributes

std::runtime_error m
 an exception object as storage for error messages More...
 

Detailed Description

general exception of the basic_json class

This class is an extension of std::exception objects with a member id for exception ids. It is used as the base class for all exceptions thrown by the basic_json class. This class can hence be used as "wildcard" to catch exceptions.

Subclasses:

  • parse_error for exceptions indicating a parse error
  • invalid_iterator for exceptions indicating errors with iterators
  • type_error for exceptions indicating executing a member function with a wrong type
  • out_of_range for exceptions indicating access out of the defined range
  • other_error for exceptions indicating other library errors
Note
To have nothrow-copy-constructible exceptions, we internally use std::runtime_error which can cope with arbitrary-length error messages. Intermediate strings are built with static functions and then passed to the actual constructor.

@liveexample{The following code shows how arbitrary library exceptions can be caught.,exception}

Since
version 3.0.0

Definition at line 2645 of file json.hpp.

Constructor & Destructor Documentation

◆ exception()

nlohmann::detail::exception::exception ( int  id_,
const char *  what_arg 
)
inlineprotected

Definition at line 2659 of file json.hpp.

Member Function Documentation

◆ diagnostics()

◆ name()

static std::string nlohmann::detail::exception::name ( const std::string &  ename,
int  id_ 
)
inlinestaticprotected

Definition at line 2661 of file json.hpp.

References nlohmann::to_string().

Referenced by nlohmann::detail::parse_error::create(), nlohmann::detail::invalid_iterator::create(), nlohmann::detail::type_error::create(), nlohmann::detail::out_of_range::create(), and nlohmann::detail::other_error::create().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ what()

const char* nlohmann::detail::exception::what ( ) const
inlineoverridenoexcept

returns the explanatory string

Definition at line 2649 of file json.hpp.

References m.

Field Documentation

◆ id

const int nlohmann::detail::exception::id

the id of the exception

Definition at line 2655 of file json.hpp.

◆ m

std::runtime_error nlohmann::detail::exception::m
private

an exception object as storage for error messages

Definition at line 2732 of file json.hpp.

Referenced by what().


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