new
操作符在现实生活中能抛出异常吗?
如果是这样,除了杀死我的应用程序之外,我还有其他处理此类异常的选项吗?
更新:
是否有任何现实世界的、新
重的应用程序检查故障并在没有内存时恢复?
另见:
最佳答案
是的,如果分配失败,new
可以并且将会抛出。如果内存不足或尝试分配的内存块太大,就会发生这种情况。
您可以捕获 std::bad_alloc
异常并适本地处理它。有时这是有道理的,其他时候(阅读:大多数时候)它没有。例如,如果您尝试分配一个巨大的缓冲区但可以使用更少的空间,您可以尝试分配连续更小的 block 。
关于c++ - C++ `new` 运算符可以在现实生活中抛出异常吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2497151/