# v3.0.0 Released on 2017-12-17. First 3.x release — a major release with breaking changes (see the [migration guide](../../integration/migration_guide.md)). - Introduces user-defined [exceptions](../exceptions.md) (`json::exception` and subtypes, each with an identifier). - Adds a non-throwing [`accept`](../../api/basic_json/accept.md) function and an `allow_exceptions` flag for [`parse`](../../api/basic_json/parse.md), and an [`update`](../../api/basic_json/update.md) function to merge objects. - Adds streaming for CBOR and MessagePack and allows storing NaN/infinity. - Non-UTF-8 strings now throw on serialization, and the iterator category changed to bidirectional. [Full release notes](https://github.com/nlohmann/json/releases/tag/v3.0.0). ## API changes