diff --git a/src/json.hpp b/src/json.hpp index 8d78430a2..54aaab56b 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -12059,7 +12059,7 @@ basic_json_parser_74: */ default: { - JSON_THROW(std::domain_error("invalid value to unflatten")); + JSON_THROW(type_error(313, "invalid value to unflatten")); } } } @@ -12496,7 +12496,7 @@ basic_json_parser_74: { if (not value.is_object()) { - JSON_THROW(std::domain_error("only objects can be unflattened")); + JSON_THROW(type_error(314, "only objects can be unflattened")); } basic_json result; @@ -12506,7 +12506,7 @@ basic_json_parser_74: { if (not element.second.is_primitive()) { - JSON_THROW(std::domain_error("values in object must be primitive")); + JSON_THROW(type_error(315, "values in object must be primitive")); } // assign value to reference pointed to by JSON pointer; Note diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c index 2f03506cb..af91aa36c 100644 --- a/src/json.hpp.re2c +++ b/src/json.hpp.re2c @@ -11092,7 +11092,7 @@ class basic_json */ default: { - JSON_THROW(std::domain_error("invalid value to unflatten")); + JSON_THROW(type_error(313, "invalid value to unflatten")); } } } @@ -11529,7 +11529,7 @@ class basic_json { if (not value.is_object()) { - JSON_THROW(std::domain_error("only objects can be unflattened")); + JSON_THROW(type_error(314, "only objects can be unflattened")); } basic_json result; @@ -11539,7 +11539,7 @@ class basic_json { if (not element.second.is_primitive()) { - JSON_THROW(std::domain_error("values in object must be primitive")); + JSON_THROW(type_error(315, "values in object must be primitive")); } // assign value to reference pointed to by JSON pointer; Note diff --git a/test/src/unit-json_pointer.cpp b/test/src/unit-json_pointer.cpp index 3c05a2783..995196754 100644 --- a/test/src/unit-json_pointer.cpp +++ b/test/src/unit-json_pointer.cpp @@ -358,17 +358,20 @@ TEST_CASE("JSON pointers") CHECK(j_flatten.unflatten() == j); // error for nonobjects - CHECK_THROWS_AS(json(1).unflatten(), std::domain_error); - CHECK_THROWS_WITH(json(1).unflatten(), "only objects can be unflattened"); + CHECK_THROWS_AS(json(1).unflatten(), json::type_error); + CHECK_THROWS_WITH(json(1).unflatten(), + "[json.exception.type_error.314] only objects can be unflattened"); // error for nonprimitve values - CHECK_THROWS_AS(json({{"/1", {1, 2, 3}}}).unflatten(), std::domain_error); - CHECK_THROWS_WITH(json({{"/1", {1, 2, 3}}}).unflatten(), "values in object must be primitive"); + CHECK_THROWS_AS(json({{"/1", {1, 2, 3}}}).unflatten(), json::type_error); + CHECK_THROWS_WITH(json({{"/1", {1, 2, 3}}}).unflatten(), + "[json.exception.type_error.315] values in object must be primitive"); // error for conflicting values json j_error = {{"", 42}, {"/foo", 17}}; - CHECK_THROWS_AS(j_error.unflatten(), std::domain_error); - CHECK_THROWS_WITH(j_error.unflatten(), "invalid value to unflatten"); + CHECK_THROWS_AS(j_error.unflatten(), json::type_error); + CHECK_THROWS_WITH(j_error.unflatten(), + "[json.exception.type_error.313] invalid value to unflatten"); // explicit roundtrip check CHECK(j.flatten().unflatten() == j);