C++自己抛出的软件异常
C++自己抛出的软件异常
C++自己抛出的软件异常
/*------------------------------------------------------------------------
24-RaiseException.cpp
演示自己抛出的软件异常
-----------------------------------------------------------------------*/
#include <tchar.h>
#include <windows.h>
DWORD FilterFunction() {
_tprintf(_T("1")); //第1句被输出的语句
return EXCEPTION_EXECUTE_HANDLER;//终止程序,并向上查找__finally 块后,再执行__except块内的代码
}
int main() {
__try {
__try {
//EXCEPTION_EXECUTE_HANDLER=1
RaiseException(1, 0, 0, NULL);//抛出异常,第2个参数0表示可继续执行
}
__finally {
_tprintf(_T("2")); //第2句被输出的语句
}
}
__except (FilterFunction()) {
_tprintf(_T("3\n")); //第3句被输出的语句
}
_tsystem(_T("PAUSE"));
return 0;
}