我试图捕捉bad_alloc
异常,以证明使用了析构函数。C++ bad_alloc异常
这里是我的对象:
#include "Obj.h"
#include<iostream>
using namespace std;
Obj::Obj() {
d = new double[200000000];
}
Obj::~Obj() {
cout << "destroyed \n";
}
和主要方法:
#include "Obj.h"
#include <iostream>
using namespace std;
int main(){
Obj* ptr[1000000];
try{
for(int i=0; i<1000; i++){
ptr[i] = new Obj();
}
} catch(bad_alloc){
cout<<"EXCEPTION";
}
}
而是捕捉异常的,我的程序会停止并试图寻找解决方案在线(Windows)中。 这是怎么回事?
编辑 我现在越来越例外,但我要证明,析构函数使用之前抛出异常。我应该怎么做?
在线解决方案?那是什么? – 2012-01-18 23:26:12
在Visual Studio中联机命名的解决方案我猜。 – WebMonster 2012-01-18 23:27:55
@VJovic:在Windows中,当程序导致Windows能够检测到的某些类错误时,会弹出一个对话框,询问您是否希望Windows在线查找解决方案(可能程序存在错误并且存在已知的修复程序它)。 – 2012-01-18 23:29:58