#include <iostream>
using namespace std;
int new1(void)
{
char *test=NULL;
while(1)
{
test = NULL;
test = new char[1000000];
if(test == NULL) //错误的处理方式,因为会抛出异常,而非NULL
{
cout<<"I am wrong\n";
break;
}
}
cout<<"I am ok!\n";
return 0;
}
int new2(void)
{
char *test=NULL;
while(1)
{
try
{
test = new char[1000000];
}
//catch(...)
catch(std::bad_alloc) //正确的处理方式
{
cout<<"I am wrong!\n";
break;
}
}
cout<<"I am ok!\n";
}
int main(int argc,char* argv[])
{
new2();
cout<<"--------"<<endl;
new1();
cout<<"++++++++"<<endl;
return 0;
}