如何处理std::bad_alloc
此函数中的异常:
std::string GetString()
{
std::string str;
return str;
}
由于任何 stl 构造函数都可以 throw bad_alloc
,我们必须这样做:
std::string GetString()
{
try
{
std::string str;
return str;
}
catch(std::bad_alloc&)
{
return ""; // Constructs temporary std::string and returns. Could throw !
}
}
再次catch
阻止仍然不安全。
我只是想让这个功能异常证明。