diff options
author | furszy <matiasfurszyfer@protonmail.com> | 2022-09-14 12:13:58 -0300 |
---|---|---|
committer | furszy <matiasfurszyfer@protonmail.com> | 2022-09-15 10:24:53 -0300 |
commit | 55566630c60d23993a52ed54c95e7891f4588d57 (patch) | |
tree | 5a8240923ad568e30388205f567798f88ab08095 /src/univalue/lib/univalue.cpp | |
parent | f523df1ee8661e0c4738694b9054952769bfff65 (diff) | |
download | bitcoin-55566630c60d23993a52ed54c95e7891f4588d57.tar.xz |
rpc: treat univalue type check error as RPC_TYPE_ERROR, not RPC_MISC_ERROR
By throwing a custom exception from `Univalue::checkType` (instead of a plain
std::runtime_error) and catching it on the RPC server request handler.
So we properly return RPC_TYPE_ERROR (-3) on arg type errors and
not the general RPC_MISC_ERROR (-1).
Diffstat (limited to 'src/univalue/lib/univalue.cpp')
-rw-r--r-- | src/univalue/lib/univalue.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/univalue/lib/univalue.cpp b/src/univalue/lib/univalue.cpp index 12a434dd0e..4448981d3e 100644 --- a/src/univalue/lib/univalue.cpp +++ b/src/univalue/lib/univalue.cpp @@ -210,7 +210,7 @@ const UniValue& UniValue::operator[](size_t index) const void UniValue::checkType(const VType& expected) const { if (typ != expected) { - throw std::runtime_error{"JSON value of type " + std::string{uvTypeName(typ)} + " is not of expected type " + + throw type_error{"JSON value of type " + std::string{uvTypeName(typ)} + " is not of expected type " + std::string{uvTypeName(expected)}}; } } |