嗨,我是C++编程新手,我很难理解他们使用的下面的代码catch.所以我想知道为什么他们catch在这段代码中使用.提前致谢
#include <iostream>
#include <exception>
using namespace std;
int main ()
{
try
{
int* myarray = new int[1000];
cout << "allocated";
}
catch (exception& e)
{
cout << "Standard exception: " << e.what() << endl;
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
如果new无法分配所需的空间,操作员可能会抛出异常.
从上面的链接:
throwing (1) void* operator new (std::size_t size) throw (std::bad_alloc);
Run Code Online (Sandbox Code Playgroud)
如果无法分配存储,则抛出bad_alloc.否则,它不会抛出异常(无抛出保证).