我读了这篇文章,发现处理异常很重要,我使用nlohmann::json
(来自github)并且几乎在我的大多数成员函数中都使用了它,如果输入有问题nlohmann::json::parse
,nlohmann::json::dump
它就有机会抛出异常。
所以我需要处理那些抛出异常的机会,如下所示:
bool my_class::function(const std::string& input) const
try
{
using namespace nlohmann;
const auto result = json::parse(input);
const auto name = result["name"].dump();
/* and ... */
}
catch (const std::exception& e)
{
/* handle exception */
}
但我想知道哪一行代码抛出异常,所以如果我写这样的东西:
bool my_class::function(const std::string& input) const
{
using namespace nlohmann;
try
{
const auto result = json::parse(input);
}
catch(const std::exception& e)
{
/* handle exception */
}
try
{
const auto name = result["name"].dump();
}
catch(const std::exception& e)
{
/* handle exception */
}
/* and ... */
}
它给我留下了数千个 try-catch 块。为什么处理异常更好?