<分区>
我正在微调一个小项目,我读到如果我尝试创建一个新对象会出错,如果失败(内存损坏,内存不足?),它会返回错误。
所以我在想,在下面一行中:
Object* myObj = new Object();
在项目中一般是怎么做的?
Object* myObj;
try
{
myObj = new Object();
}
catch (std::bad_alloc&)
{
//Deal with the Error
}
或者...
Object* myObj = new (std::nothrow) Object();
if(!myObj)
{
//Deal with the Error
}
我假设 #2 是最好的操作,因为尝试/捕获每个新的似乎开销太大。
一想到搜索所有新关键字并在各处添加错误检查就……令人沮丧。还有其他选择吗?或者一些选项使 (std::nothrow) 作为 new 的默认操作?