在 C++ 中使用 new 申请内存时,如果分配失败,默认会抛出异常。常见的处理方式是用 try / catch 去捕获并处理这个异常。
如果不希望走异常这条路,可以改用 std::nothrow,让分配失败时返回空指针而不是抛异常:
auto ref=new(std::nothrow) myclass;
这样分配失败就不会抛出异常,直接对 ref判空处理
这样一来,只需要在拿到指针后对 ref 做判空处理即可,不必再写 try / catch 块。
书山有路勤为径