关于__try __except中的GetExceptionCode和GetExceptionInformation宏?
网上看到这两个宏只能在紧跟__except后的括号中使用,否则结果不能保证。但我发现GetExceptionCode可以在__except后的语句块使用,并且得到了ExceptionCode。请问这样用有什么副作用吗?
int *error = 0; ULONG errcode = 0; __try{ *error = 0; } __except( EXCEPTION_EXECUTE_HANDLER/*AnalysisException(GetExceptionInformation())*/ ){ //=============================================================== //= = Safe place. errcode = GetExceptionCode(); switch ( errcode ){ case EXCEPTION_ACCESS_VIOLATION: MessageBox( NULL, "非法访问!", "Hint", MB_OK ); break; case EXCEPTION_INT_DIVIDE_BY_ZERO: MessageBox( NULL, "除0错误!", "Hint", MB_OK ); break; case EXCEPTION_SINGLE_STEP: MessageBox( NULL, "单步中断!", "Hint", MB_OK ); break; case EXCEPTION_BREAKPOINT: MessageBox( NULL, "断点异常!", "Hint", MB_OK ); break; default: MessageBox( NULL, "程序异常!", "Hint", MB_OK ); break; } }