原因:在同一个函数里还存在C++的异常处理。C++的异常处理不能与windows的结构化异常处理在同一个函数里。
解决方案:将要用windows结构化异常处理保护的代码单独放在一个函数里。
void Func1()
{
__try
{
Func2();
}
__finally
{
//do something
}
}
void Func2()
{
//do something
}
另:在使用windows的结构化异常处理时,__finally块与__except块不能同时出现在__try块后面,二者只能选其一,但可以嵌套使用。
本文探讨了C++异常处理与Windows结构化异常处理在同一函数中出现时的问题,并提供了将受保护代码分离到独立函数中的解决方案。此外,还强调了在使用Windows结构化异常处理时__finally与__except块的选择及使用限制。
525

被折叠的 条评论
为什么被折叠?



