类中处理异常

 1 /* 数组类的异常 */
 2 
 3 #include<iostream>
 4 #include<cstring>
 5 
 6 using namespace std;
 7 
 8 class memerror
 9 {
10 };
11 
12 class powererror
13 {
14 };
15 
16 class myArray
17 {
18 public:
19     myArray(int length)
20     {
21         if (length<=0 || length>=4294967295)
22         {
23             throw memerror();
24         }
25 
26 
27         this->p = new int[length];// 构造
28         for (int i=0;i<length;i++)
29         {
30             this->p[i] = i;// 针对每一个初始化
31         }
32     }
33 
34     ~myArray()
35     {
36         delete []this->p;
37     }
38     
39     int & operator[](int num)
40     {
41         // 0<=num<=n
42         if(num<0 || num>n-1)
43         {
44             throw powererror();
45         }
46 
47         
48         return this->p[num];
49     }
50     
51 
52 
53 private:
54     int *p;// 数组首地址
55     int n;// 代表长度
56 
57 };
58 
59 
60 void main()
61 {
62     myArray my1(10);
63     for (inti=0;i<10;i++)
64     {
65         cout << my1[i] << endl;
66     }
67 
68     cin.get();
69 }
70 
71 //---------------------------------------------------------
72 
73 void main()
74 {
75     try
76     {
77         myArray my1(10);
78     }
79     catch (memerror e)
80     {
81         cout << typeid(e).name() << endl;
82     }
83     catch(powererror e)
84     {
85         cout << typeid(e).name() << endl;
86     }
87 
88 
89     cin.get();
90 }

 

posted on 2015-06-16 10:38  Dragon-wuxl  阅读(88)  评论(0)    收藏  举报

导航