类中处理异常
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) 收藏 举报
浙公网安备 33010602011771号