VC++异常捕获

这里强调了是VC++中的异常捕获;

通常在C++中的异常捕获是:


void Func1()
{
int* p = 0x00000000;   // pointer to NULL
*p = 10;  
}



try
{
Func1();
}
catch (...)
{
MessageBox(L"in finally");
 
throw;
}

如果在VC++用这个方法,那么程序会崩溃,而且不会进入catch中,这与我们想要的结果不一致;


在VC++ 中一般捕获的方法是:

这与的话就可以捕获一些指针错误了;




{


__try
{
__try
{

Func1();
}
__finally
{
MessageBox(L"in finally");
}
}
__except(puts("in filter"), 1)
{
MessageBox(L"in except");
}


}


你可能感兴趣的:(VC++)