Более изящная обработка ошибок в библиотеке C++ - jsoncpp

Я не уверен, будет ли это конкретной вещью с jsoncpp или общей парадигмой с тем, как заставить библиотеку C++ вести себя лучше. В принципе, я получаю такой след:

imagegeneratormanager.tsk: src/lib_json/json_value.cpp:1176: const Json::Value&     Json::Value::operator[](const char*) const: Assertion `type_ == nullValue || type_ == objectValue' failed.

Это происходит, когда вход плохой. Когда входные данные, поступающие из другого моего приложения через memcached, оказываются плохими, я хотел бы справиться с этой ошибкой. Знаете, грациозно. Возможно, что-то вроде «ошибка: ввод для элемента 15006 плох», идущий в журнал. Не завершая работу всей задачи обработки строк JSON.

Это просто плохо написанная библиотека или ее можно настроить более тонко?

Правка: вот код вызова:

Json::Value root;
Json::Reader reader;
succeeded = reader.parse(jsonString, root);

if(!succeeded) {
  throw std::runtime_error(std::string("Failed to parse JSON for key ")  + emailInfoKey.str());
}

std::string userEmail = root.get("userId", "").asString();
std::string bodyFilePath = root.get("bodyFilePath", "").asString();
std::string msgId = root.get("msgId", "").asString();
6
задан djechlin 1 June 2012 в 15:12
поделиться