🔨 added user-defined exception 311

This commit is contained in:
Niels Lohmann 2017-03-05 22:39:21 +01:00
parent 6751d650be
commit 491c9780a7
No known key found for this signature in database
GPG key ID: 7F3CEA63AE251B69
3 changed files with 8 additions and 7 deletions

View file

@ -5607,7 +5607,7 @@ class basic_json
already-existing element if no insertion happened, and a bool already-existing element if no insertion happened, and a bool
denoting whether the insertion took place. denoting whether the insertion took place.
@throw std::domain_error when called on a type other than JSON object or @throw type_error.311 when called on a type other than JSON object or
null; example: `"cannot use emplace() with number"` null; example: `"cannot use emplace() with number"`
@complexity Logarithmic in the size of the container, O(log(`size()`)). @complexity Logarithmic in the size of the container, O(log(`size()`)).
@ -5625,7 +5625,7 @@ class basic_json
// emplace only works for null objects or arrays // emplace only works for null objects or arrays
if (not(is_null() or is_object())) if (not(is_null() or is_object()))
{ {
JSON_THROW(std::domain_error("cannot use emplace() with " + type_name())); JSON_THROW(type_error(311, "cannot use emplace() with " + type_name()));
} }
// transform null object into an object // transform null object into an object

View file

@ -5607,7 +5607,7 @@ class basic_json
already-existing element if no insertion happened, and a bool already-existing element if no insertion happened, and a bool
denoting whether the insertion took place. denoting whether the insertion took place.
@throw std::domain_error when called on a type other than JSON object or @throw type_error.311 when called on a type other than JSON object or
null; example: `"cannot use emplace() with number"` null; example: `"cannot use emplace() with number"`
@complexity Logarithmic in the size of the container, O(log(`size()`)). @complexity Logarithmic in the size of the container, O(log(`size()`)).
@ -5625,7 +5625,7 @@ class basic_json
// emplace only works for null objects or arrays // emplace only works for null objects or arrays
if (not(is_null() or is_object())) if (not(is_null() or is_object()))
{ {
JSON_THROW(std::domain_error("cannot use emplace() with " + type_name())); JSON_THROW(type_error(311, "cannot use emplace() with " + type_name()));
} }
// transform null object into an object // transform null object into an object

View file

@ -293,7 +293,7 @@ TEST_CASE("modifiers")
json j = 1; json j = 1;
CHECK_THROWS_AS(j.emplace_back("Hello"), json::type_error); CHECK_THROWS_AS(j.emplace_back("Hello"), json::type_error);
CHECK_THROWS_WITH(j.emplace_back("Hello"), CHECK_THROWS_WITH(j.emplace_back("Hello"),
"[json.exception.type_error.311] cannot use emplace_back() with number"); "[json.exception.type_error.311] cannot use emplace_back() with number");
} }
} }
@ -351,8 +351,9 @@ TEST_CASE("modifiers")
SECTION("other type") SECTION("other type")
{ {
json j = 1; json j = 1;
CHECK_THROWS_AS(j.emplace("foo", "bar"), std::domain_error); CHECK_THROWS_AS(j.emplace("foo", "bar"), json::type_error);
CHECK_THROWS_WITH(j.emplace("foo", "bar"), "cannot use emplace() with number"); CHECK_THROWS_WITH(j.emplace("foo", "bar"),
"[json.exception.type_error.311] cannot use emplace() with number");
} }
} }