ExampleNine.cpp
上传用户:skywee
上传日期:2021-12-09
资源大小:141k
文件大小:1k
源码类别:

文件格式

开发平台:

C/C++

  1. #include <stdio.h>
  2. #include <excpt.h>
  3. #include <windows.h>
  4. int Filter(DWORD dwError,_EXCEPTION_POINTERS *pep)
  5. {
  6. //用第一个参数获取ExceptionCode
  7. if(dwError==EXCEPTION_ACCESS_VIOLATION)
  8. printf("Exception_Access_Violationn");
  9. else
  10. printf("Unknown Error:%dn",dwError);
  11. //用第二个参数获取ExceptionCode
  12. printf("Code=%08X, Address=%08Xn",
  13.    pep->ExceptionRecord->ExceptionCode,
  14.    pep->ExceptionRecord->ExceptionAddress);
  15. return EXCEPTION_EXECUTE_HANDLER;
  16. }
  17. int Func()
  18. {
  19. int *pi=NULL;
  20. __try{
  21. *pi=10;
  22. //注意,GetExceptionCode()只能在__except()中调用。
  23. }__except(Filter(GetExceptionCode(),GetExceptionInformation())){
  24. printf("__except statementn");
  25. }
  26. printf("after __except statementn");
  27. return 0;
  28. }
  29. int main(int argc, char* argv[])
  30. {
  31. int i=Func();
  32. return 0;
  33. }