Skip to content

# basic_json::parse_error

    class parse_error : public exception;

This exception is thrown by the library 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.

Exceptions have ids 1xx.

## Member functions

- what - returns explanatory string

## Member variables

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

## Note

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.

## Example

Example

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

    #include <iostream>
    #include <nlohmann/json.hpp>

    using json = nlohmann::json;

    int main()
    {
        try
        {
            // parsing input with a syntax error
            json::parse("[1,2,3,]");
        }
        catch (json::parse_error& e)
        {
            // output exception information
            std::cout << "message: " << e.what() << '\n'
                      << "exception id: " << e.id << '\n'
                      << "byte position of error: " << e.byte << std::endl;
        }
    }

Output:

    message: [json.exception.parse_error.101] parse error at line 1, column 8: syntax error while parsing value - unexpected ']'; expected '[', '{', or a literal
    exception id: 101
    byte position of error: 8

## Version history

- Since version 3.0.0.