🔨 added user-defined exception 311

parent 6751d650
...@@ -5607,7 +5607,7 @@ class basic_json ...@@ -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 ...@@ -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
......
...@@ -5607,7 +5607,7 @@ class basic_json ...@@ -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 ...@@ -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
......
...@@ -293,7 +293,7 @@ TEST_CASE("modifiers") ...@@ -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") ...@@ -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");
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment