use_sales.cpp 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. // use_sales.cpp -- nested exceptions
  2. #include <iostream>
  3. #include "sales.h"
  4. int main()
  5. {
  6. using std::cout;
  7. using std::cin;
  8. using std::endl;
  9. double vals1[12] =
  10. {
  11. 1220, 1100, 1122, 2212, 1232, 2334,
  12. 2884, 2393, 3302, 2922, 3002, 3544
  13. };
  14. double vals2[12] =
  15. {
  16. 12, 11, 22, 21, 32, 34,
  17. 28, 29, 33, 29, 32, 35
  18. };
  19. Sales sales1(2011, vals1, 12);
  20. LabeledSales sales2("Blogstar",2012, vals2, 12 );
  21. cout << "First try block:\n";
  22. try
  23. {
  24. int i;
  25. cout << "Year = " << sales1.Year() << endl;
  26. for (i = 0; i < 12; ++i)
  27. {
  28. cout << sales1[i] << ' ';
  29. if (i % 6 == 5)
  30. cout << endl;
  31. }
  32. cout << "Year = " << sales2.Year() << endl;
  33. cout << "Label = " << sales2.Label() << endl;
  34. for (i = 0; i <= 12; ++i)
  35. {
  36. cout << sales2[i] << ' ';
  37. if (i % 6 == 5)
  38. cout << endl;
  39. }
  40. cout << "End of try block 1.\n";
  41. }
  42. catch(LabeledSales::nbad_index & bad)
  43. {
  44. cout << bad.what();
  45. cout << "Company: " << bad.label_val() << endl;
  46. cout << "bad index: " << bad.bi_val() << endl;
  47. }
  48. catch(Sales::bad_index & bad)
  49. {
  50. cout << bad.what();
  51. cout << "bad index: " << bad.bi_val() << endl;
  52. }
  53. cout << "\nNext try block:\n";
  54. try
  55. {
  56. sales2[2] = 37.5;
  57. sales1[20] = 23345;
  58. cout << "End of try block 2.\n";
  59. }
  60. catch(LabeledSales::nbad_index & bad)
  61. {
  62. cout << bad.what();
  63. cout << "Company: " << bad.label_val() << endl;
  64. cout << "bad index: " << bad.bi_val() << endl;
  65. }
  66. catch(Sales::bad_index & bad)
  67. {
  68. cout << bad.what();
  69. cout << "bad index: " << bad.bi_val() << endl;
  70. }
  71. cout << "done\n";
  72. // std::cin.get();
  73. return 0;
  74. }