1
0
mirror of https://github.com/nlohmann/json.git synced 2025-08-10 16:23:04 +03:00
Files
json/docs/mkdocs/docs/api/basic_json/parse_error.md
Niels Lohmann 4424a0fcc1 📝 update documentation (#4723)
Signed-off-by: Niels Lohmann <mail@nlohmann.me>
2025-04-05 18:54:35 +02:00

2.4 KiB

nlohmann::basic_json::parse_error

class parse_error : public exception;

The library throws this exception when a parse error occurs. Parse errors can occur during the deserialization of JSON text, BSON, CBOR, MessagePack, UBJSON, as well as when using JSON Patch.

Member byte holds the byte index of the last read character in the input file (see note below).

Exceptions have ids 1xx (see list of parse errors).

classDiagram
  direction LR
  
    class std_exception ["std::exception"] {
        <<interface>>
    }

    class json_exception ["basic_json::exception"] {
        +const int id
        +const char* what() const
    }
    
    class json_parse_error ["basic_json::parse_error"] {
        +const std::size_t byte
    }

    class json_invalid_iterator ["basic_json::invalid_iterator"]
    class json_type_error ["basic_json::type_error"]
    class json_out_of_range ["basic_json::out_of_range"]
    class json_other_error ["basic_json::other_error"]

    std_exception <|-- json_exception
    json_exception <|-- json_parse_error
    json_exception <|-- json_invalid_iterator
    json_exception <|-- json_type_error
    json_exception <|-- json_out_of_range
    json_exception <|-- json_other_error

    style json_parse_error fill:#CCCCFF

Member functions

  • what - returns explanatory string

Member variables

  • id - the id of the exception
  • byte - byte index of the parse error

Notes

For an input with n bytes, 1 is the index of the first character and n+1 is the index of the terminating null byte or the end of file. This also holds true when reading a byte vector for binary formats.

Examples

??? example

The following code shows how a `parse_error` exception can be caught.

```cpp
--8<-- "examples/parse_error.cpp"
```

Output:

```json
--8<-- "examples/parse_error.output"
```

See also

Version history

  • Since version 3.0.0.