🔨 added user-defined exception 406
This commit is contained in:
parent
43b8285249
commit
c5cf32e34d
5 changed files with 11 additions and 7 deletions
|
@ -283,6 +283,7 @@ json.exception.out_of_range.402 | array index '-' (3) is out of range | The spec
|
||||||
json.exception.out_of_range.403 | key 'foo' not found | The provided key was not found in the JSON object.
|
json.exception.out_of_range.403 | key 'foo' not found | The provided key was not found in the JSON object.
|
||||||
json.exception.out_of_range.404 | unresolved reference token 'foo' | A reference token in a JSON Pointer could not be resolved.
|
json.exception.out_of_range.404 | unresolved reference token 'foo' | A reference token in a JSON Pointer could not be resolved.
|
||||||
json.exception.out_of_range.405 | JSON pointer has no parent | The JSON Patch operations 'remove' and 'add' can not be applied to the root element of the JSON value.
|
json.exception.out_of_range.405 | JSON pointer has no parent | The JSON Patch operations 'remove' and 'add' can not be applied to the root element of the JSON value.
|
||||||
|
json.exception.out_of_range.406 | number overflow parsing '10E1000' | A parsed number could not be stored as without changing it to NaN or INF.
|
||||||
|
|
||||||
@since version 3.0.0
|
@since version 3.0.0
|
||||||
*/
|
*/
|
||||||
|
@ -11717,7 +11718,7 @@ basic_json_parser_74:
|
||||||
// throw in case of infinity or NAN
|
// throw in case of infinity or NAN
|
||||||
if (not std::isfinite(result.m_value.number_float))
|
if (not std::isfinite(result.m_value.number_float))
|
||||||
{
|
{
|
||||||
JSON_THROW(std::out_of_range("number overflow: " + get_token_string()));
|
JSON_THROW(out_of_range(406, "number overflow parsing '" + get_token_string() + "'"));
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -283,6 +283,7 @@ json.exception.out_of_range.402 | array index '-' (3) is out of range | The spec
|
||||||
json.exception.out_of_range.403 | key 'foo' not found | The provided key was not found in the JSON object.
|
json.exception.out_of_range.403 | key 'foo' not found | The provided key was not found in the JSON object.
|
||||||
json.exception.out_of_range.404 | unresolved reference token 'foo' | A reference token in a JSON Pointer could not be resolved.
|
json.exception.out_of_range.404 | unresolved reference token 'foo' | A reference token in a JSON Pointer could not be resolved.
|
||||||
json.exception.out_of_range.405 | JSON pointer has no parent | The JSON Patch operations 'remove' and 'add' can not be applied to the root element of the JSON value.
|
json.exception.out_of_range.405 | JSON pointer has no parent | The JSON Patch operations 'remove' and 'add' can not be applied to the root element of the JSON value.
|
||||||
|
json.exception.out_of_range.406 | number overflow parsing '10E1000' | A parsed number could not be stored as without changing it to NaN or INF.
|
||||||
|
|
||||||
@since version 3.0.0
|
@since version 3.0.0
|
||||||
*/
|
*/
|
||||||
|
@ -10750,7 +10751,7 @@ class basic_json
|
||||||
// throw in case of infinity or NAN
|
// throw in case of infinity or NAN
|
||||||
if (not std::isfinite(result.m_value.number_float))
|
if (not std::isfinite(result.m_value.number_float))
|
||||||
{
|
{
|
||||||
JSON_THROW(std::out_of_range("number overflow: " + get_token_string()));
|
JSON_THROW(out_of_range(406, "number overflow parsing '" + get_token_string() + "'"));
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -277,8 +277,9 @@ TEST_CASE("parser class")
|
||||||
SECTION("overflow")
|
SECTION("overflow")
|
||||||
{
|
{
|
||||||
// overflows during parsing yield an exception
|
// overflows during parsing yield an exception
|
||||||
CHECK_THROWS_AS(json::parser("1.18973e+4932").parse() == json(), std::out_of_range);
|
CHECK_THROWS_AS(json::parser("1.18973e+4932").parse() == json(), json::out_of_range);
|
||||||
CHECK_THROWS_WITH(json::parser("1.18973e+4932").parse() == json(), "number overflow: 1.18973e+4932");
|
CHECK_THROWS_WITH(json::parser("1.18973e+4932").parse() == json(),
|
||||||
|
"[json.exception.out_of_range.406] number overflow parsing '1.18973e+4932'");
|
||||||
}
|
}
|
||||||
|
|
||||||
SECTION("invalid numbers")
|
SECTION("invalid numbers")
|
||||||
|
|
|
@ -590,8 +590,9 @@ TEST_CASE("regression tests")
|
||||||
|
|
||||||
SECTION("issue #329 - serialized value not always can be parsed")
|
SECTION("issue #329 - serialized value not always can be parsed")
|
||||||
{
|
{
|
||||||
CHECK_THROWS_AS(json::parse("22e2222"), std::out_of_range);
|
CHECK_THROWS_AS(json::parse("22e2222"), json::out_of_range);
|
||||||
CHECK_THROWS_WITH(json::parse("22e2222"), "number overflow: 22e2222");
|
CHECK_THROWS_WITH(json::parse("22e2222"),
|
||||||
|
"[json.exception.out_of_range.406] number overflow parsing '22e2222'");
|
||||||
}
|
}
|
||||||
|
|
||||||
SECTION("issue #366 - json::parse on failed stream gets stuck")
|
SECTION("issue #366 - json::parse on failed stream gets stuck")
|
||||||
|
|
|
@ -797,7 +797,7 @@ TEST_CASE("nst's JSONTestSuite")
|
||||||
CAPTURE(filename);
|
CAPTURE(filename);
|
||||||
std::ifstream f(filename);
|
std::ifstream f(filename);
|
||||||
json j;
|
json j;
|
||||||
CHECK_THROWS_AS(j << f, std::out_of_range);
|
CHECK_THROWS_AS(j << f, json::out_of_range);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue