我試圖捕捉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