これが 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();