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

文件格式

开发平台:

C/C++

  1. #include <afx.h>
  2. #include <afxdb.h>
  3. void Func2()
  4. {
  5. TRY
  6. {
  7. printf("raising memory exceptionn");
  8. AfxThrowMemoryException();
  9. printf("this line should never appearn");
  10. }
  11. CATCH(CException ,pe)//!!!注意,抛出的是对象的指针
  12. {
  13. printf("caught generic exception; rethrowingn");
  14. THROW_LAST(); //重新抛出必须用THROW_LAST();而不是THROW()
  15. printf("this line should never appearn");
  16. }
  17. END_CATCH
  18. printf("this line should never appearn");
  19. }
  20. void Func3()
  21. {
  22. TRY
  23. {
  24. Func2();
  25. printf("this line should never appearn");
  26. }
  27. CATCH(CFileException,pe)
  28. {
  29. printf("caught file exceptionn");
  30. }
  31. AND_CATCH(CMemoryException,pe)
  32. {
  33. printf("caught memory exceptionn");
  34. }
  35. AND_CATCH(CException,pe) //捕获剩下的MFC异常类对象
  36. {
  37. printf("caught generic exceptionn");
  38. pe->ReportError();
  39. }
  40. END_CATCH
  41. }
  42. int main()
  43. {
  44. AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0);
  45. Func3();
  46. return 0;
  47. }