c++ - C++ `new` 运算符可以在现实生活中抛出异常吗?

标签 c++ exception new-operator out-of-memory

new 操作符在现实生活中能抛出异常吗?

如果是这样,除了杀死我的应用程序之外,我还有其他处理此类异常的选项吗?

更新:

是否有任何现实世界的、重的应用程序检查故障并在没有内存时恢复?


另见:

最佳答案

是的,如果分配失败,new 可以并且将会抛出。如果内存不足或尝试分配的内存块太大,就会发生这种情况。

您可以捕获 std::bad_alloc 异常并适本地处理它。有时这是有道理的,其他时候(阅读:大多数时候)它没有。例如,如果您尝试分配一个巨大的缓冲区但可以使用更少的空间,您可以尝试分配连续更小的 block 。

关于c++ - C++ `new` 运算符可以在现实生活中抛出异常吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2497151/

相关文章:

c++ - 在 C++ 中将 std::wstring 转换为 const *char

c++ - 如何使我的 C++ 代码与 QT 按钮一起工作并打印到 QlineEdit?

ios - 如何捕获 Swift 崩溃并进行一些日志记录

c++ - 如何在 C++ 中记录异常情况?

android - 使用新 API 添加联系人时出现问题

c++ - 在 target_include_directories 的帮助下减少 header 的长度

c++ - 图中的二分匹配

java - 线程 "main"java.lang.NullPointerException 中的异常 - 方法

c++新运算符使用问题

c# - C# 中调用函数而不创建对象