std::bad_allocこの関数で例外を処理する方法:
std::string GetString()
{
std::string str;
return str;
}
どの stl コンストラクター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ますが、ブロックはまだ安全ではありません。
この関数の例外を証明したいだけです。