本人结构化异常处理基础为0,以下代码谁能帮我解释下为什么有了try还会报非法访问内存错误?那try有什么用?
C++异常处理:
try{
*(PBYTE)NULL=3;
}
catch(exception){
MessageBoxW(NULL, NULL, NULL, NULL);
}
Windows结构化异常处理
__try{
*(PBYTE)NULL=3;
}
__finally{
MessageBoxW(NULL, NULL, NULL, NULL);
}
C++异常处理:
try{
*(PBYTE)NULL=3;
}
catch(exception){
MessageBoxW(NULL, NULL, NULL, NULL);
}
Windows结构化异常处理
__try{
*(PBYTE)NULL=3;
}
__finally{
MessageBoxW(NULL, NULL, NULL, NULL);
}
被捕获的异常一定是在你程序的某个地方抛出来的(也许是你自己写的code,也许是某个库里的),你这个赋值直接就产生了个OS的异常,直接中断了。
{
// guarded code
}
__except ( expression )
{
// exception handler code
}
当然楼上的答案基本上满意了,1天之后如果没有忘记登录就结贴。
这个跟throw的那种C++异常完全是两回事。