- Make the iterator range illustrations legible in dark mode (prefers-color-scheme rules inside the SVGs). - Add a "Byte layout" section with a color-coded byte table to each binary format page (BJData, BON8, BSON, CBOR, MessagePack, UBJSON), and highlight the smallest size per file in the comparison table. - Add "See also" sections to the overview pages that lacked one. - Split the release notes into one page per release, grouped by minor version on the overview page, with an "API changes" section per release generated from the API pages' version histories (hooks/api_changes.py). - Fact-check the release notes and version histories against the release tags and correct wrong or misleading entries (e.g., json_serializer 2.1.0, merge_patch 3.1.0, items, count, operator[], to_bjdata, std::string_view key support). Signed-off-by: Niels Lohmann <mail@nlohmann.me>
2.1 KiB
2.1 KiB
nlohmann::basic_json::invalid_iterator
class invalid_iterator : public exception;
This exception is thrown if iterators passed to a library function do not match the expected semantics.
Exceptions have ids 2xx (see list of iterator 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_invalid_iterator fill:#CCCCFF
Member functions
- what - returns explanatory string
Member variables
- id - the id of the exception
Examples
??? example
The following code shows how a `invalid_iterator` exception can be caught.
```cpp
--8<-- "examples/invalid_iterator.cpp"
```
Output:
```json
--8<-- "examples/invalid_iterator.output"
```
See also
exceptionfor the base class of all exceptions thrown by the library- List of iterator errors
parse_errorfor exceptions indicating a parse errortype_errorfor exceptions indicating executing a member function with a wrong typeout_of_rangefor exceptions indicating access out of the defined rangeother_errorfor exceptions indicating other library errors
Version history
- Added in version 3.0.0.