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

文件格式

开发平台:

C/C++

  1. #include <iostream>
  2. #include <string>
  3. using namespace std;
  4. class MyException
  5. {
  6. int a;
  7. string s;
  8. public:
  9. MyException()
  10. {
  11. a=0;
  12. s = "Error";
  13. }
  14. MyException(int id, string msg)
  15. {
  16. a=id;
  17. s = msg;
  18. }
  19. void display()
  20. {
  21. cout<<s<<" and ErrorID = "<< a;
  22. }
  23. };
  24. int main()
  25. {
  26. void f1();
  27. //f1();
  28. try
  29. {
  30. f1();
  31. }
  32. catch(double)
  33. {
  34. cout<<"OK0!"<<endl;
  35. }
  36. cout<<"end0"<<endl;
  37. return 0;
  38. }
  39. void f1()
  40. {
  41. void f2();
  42. try
  43. {
  44. f2();
  45. }
  46. catch(char)
  47. {
  48. cout<<"OK1!";
  49. }
  50. cout<<"end1"<<endl;
  51. }
  52. void f2()
  53. {
  54. void f3();
  55. try
  56. {
  57. f3();
  58. }
  59. catch(int)
  60. {
  61. cout<<"Ok2!"<<endl;
  62. }
  63. cout<<"end2"<<endl;
  64. }
  65. void f3()
  66. {
  67. double a=0;
  68. try
  69. {
  70.    throw a;
  71. }
  72. catch(float)
  73. {
  74. cout<<"OK3!"<<endl;
  75. }
  76. try
  77. {
  78. MyException e(105,"Data Error!!!");
  79. throw e;
  80. }
  81. catch (MyException e)
  82. {
  83. e.display(); 
  84. }
  85. cout<<"end3"<<endl;
  86. }