JSON for Modern C++ 3.10.4

◆ other_error

template<template< typename U, typename V, typename... Args > class ObjectType = std::map, template< typename U, typename... Args > class ArrayType = std::vector, class StringType = std::string, class BooleanType = bool, class NumberIntegerType = std::int64_t, class NumberUnsignedType = std::uint64_t, class NumberFloatType = double, template< typename U > class AllocatorType = std::allocator, template< typename T, typename SFINAE=void > class JSONSerializer = adl_serializer, class BinaryType = std::vector<std::uint8_t>>
using nlohmann::basic_json< ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer, BinaryType >::other_error = detail::other_error

This exception is thrown in case of errors that cannot be classified with the other exception types.

Exceptions have ids 5xx.

name / id example message description
json.exception.other_error.501 unsuccessful: {"op":"test","path":"/baz", "value":"bar"} A JSON Patch operation 'test' failed. The unsuccessful operation is also printed.
See also
- exception for the base class of the library 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
The following code shows how an other_error exception can be caught.
1#include <iostream>
2#include <nlohmann/json.hpp>
4using json = nlohmann::json;
6int main()
8 try
9 {
10 // executing a failing JSON Patch operation
11 json value = R"({
12 "best_biscuit": {
13 "name": "Oreo"
14 }
15 })"_json;
16 json patch = R"([{
17 "op": "test",
18 "path": "/best_biscuit/name",
19 "value": "Choco Leibniz"
20 }])"_json;
21 value.patch(patch);
22 }
23 catch (json::other_error& e)
24 {
25 // output exception information
26 std::cout << "message: " << e.what() << '\n'
27 << "exception id: " << e.id << std::endl;
28 }
ValueType value(const typename object_t::key_type &key, const ValueType &default_value) const
access specified object element with default value
Definition: json.hpp:21500
detail::other_error other_error
exception indicating other library errors
Definition: json.hpp:17773
basic_json patch(const basic_json &json_patch) const
applies a JSON patch
Definition: json.hpp:25952
basic_json<> json
default JSON class
Definition: json.hpp:3472

Output (play with this example online):
message: [json.exception.other_error.501] unsuccessful: {"op":"test","path":"/best_biscuit/name","value":"Choco Leibniz"}
exception id: 501
The example code above can be translated with
g++ -std=c++11 -Isingle_include doc/examples/other_error.cpp -o other_error 
version 3.0.0

Definition at line 17773 of file json.hpp.