复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90#include <iostream> #include <string.h> /** * */ using namespace std; class Myexception{ public: Myexception(char* str){ error=new char[strlen(str)+1]; strcpy(error,str); } ~ Myexception(){ if(error!=NULL){ delete[] error; } } //拷贝构造与=重载 Myexception(const Myexception& ex){ this->error=new char[strlen(ex.error)+1]; strcpy(this->error,ex.error); } //重载= Myexception& operator=(const Myexception& ex ){ if(this->error!=NULL){ delete[] this->error; this->error=NULL;//防止野指针出现 } this->error=new char[strlen(this->error)+1]; strcpy(this->error,ex.error); } public: void what(){ cout<<error<<endl; } public: char *error; }; void func() { throw 1; } void func02() { throw "excption"; } //抛出类对象异常 void func03() { throw Myexception("my current exception"); //匿名对象 } /******************************************/ void test01() { try{ func(); } catch(int e){ cout<<"interater exception"<<endl; } // try{ // func02(); // } // catch(char* str){ // cout<<"字符串异常"<<endl; // } try{ func03(); } catch(Myexception obj){ obj.what(); } } int main(int argc, char *argv[]) { test01(); return 0; }
最后
以上就是冷艳月光最近收集整理的关于C++ 异常类型的全部内容,更多相关C++内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复