https://github.com/bitcoin/bitcoin/issues/15555#issuecomment-479346264
{
    try
    {
        RPCCommandExecution execution(request.strMethod);
        
        if (request.params.isObject()) {
            return command.actor(transformNamedArguments(request, command.argNames), result, last_handler);
        } else {
            return command.actor(request, result, last_handler);
        }
    }
    catch (const std::exception& e)
    {
        throw JSONRPCError(RPC_MISC_ERROR, e.what());
    }
}
std::vector<std::string> CRPCTable::listCommands() const