11_100.cpp
上传用户:zipjojo
上传日期:2009-07-20
资源大小:70k
文件大小:1k
源码类别:

文章/文档

开发平台:

C/C++

  1. #include<iostream.h>
  2. void fun(void);
  3. class evil
  4. {
  5. public:
  6. evil(){}
  7. ~evil(){}
  8. const char* ShowReason() const
  9. {
  10. return "evil类异常。";
  11. }
  12. };
  13. class A
  14. {
  15. public:
  16. A();
  17. ~A();
  18. };
  19. A::A()
  20. {
  21. cout<<"构造A。"<<endl;
  22. }
  23. A::~A()
  24. {
  25. cout<<"析构A。"<<endl;
  26. }
  27. void fun()
  28. {
  29. A D;
  30. cout<<"在fun()中抛掷evil类异常,注意自动调用局部对象的析构函数。"<<endl;
  31. throw evil();
  32. }
  33. void main()
  34. {
  35. cout<<"在main函数中"<<endl;
  36. try
  37. {
  38. cout<<"在try块中调用fun()。"<<endl;
  39. fun();
  40. }
  41. catch(evil E)
  42. {
  43. cout<<"在catch异常处理程序中。"<<endl;
  44. cout<<"捕获到evil类型异常:";
  45. cout<<E.ShowReason()<<endl;
  46. }
  47. catch(char *str)
  48. {
  49. cout<<"捕获到其它异常:"<<str<<endl;
  50. }
  51. cout<<"回到main函数。从这里恢复执行。"<<endl;
  52. }