<new>

std::bad_alloc

class bad_alloc;
在分配内存失败时抛出的异常

当标准定义的 operator newoperator new[] 无法分配请求的存储空间时抛出的异常的类型。

此类继承自 exception。有关标准异常的成员定义,请参阅 exception 类。

其成员 what 返回一个标识异常的空终止字符序列

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// bad_alloc example
#include <iostream>     // std::cout
#include <new>          // std::bad_alloc

int main () {
  try
  {
    int* myarray= new int[10000];
  }
  catch (std::bad_alloc& ba)
  {
    std::cerr << "bad_alloc caught: " << ba.what() << '\n';
  }
  return 0;
}

可能的输出

bad_alloc caught: bad allocation


异常安全

无异常保证:无成员抛出异常。

另见