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.


  • 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
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}

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 

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_ 

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

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

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: