C++异常

2

C++异常

  在学习C++时,如果一些操作不当,会导致程序异常终止,没有得到我们想要的输出,这是怎么回事呢?今天我会专门介绍C++中的一些异常,这和Python,Java等绝大部分语言都是类似的。

抛出和捕获异常

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include<iostream>
using namespace std;

int main() {
int a = 10;
//try...catch用于捕获异常,在try中写可能发生异常的代码,然后在catch中进行捕获处理。
try {
//您可以使用 throw 语句在代码块中的任何地方抛出异常。throw 语句的操作数可以是任意的表达式,表达式的结果的类型决定了抛出的异常的类型。
throw a++;
cout << "try" << endl;
}
//catch后面声明异常的类型,如果向捕获任何类型的异常,则用省略号...表示。
catch (int i) {
cout << "i = " << i << endl;
cout << "a = " << a << endl;
}
return 0;
}

1

自定义异常

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
#include <iostream>
using namespace std;

//可以通过继承和重载exception类自定义异常
class MyException :public exception {
public:
char* value;

MyException(char* s) {
value = s;
}

const char* what() const throw () {
return this->value;
}
};

int main() {
char c[] = "月份值不能超过12!";
char* s = c;
try {
throw MyException(s);
cout << "try" << endl;
}
catch (MyException e) {
cout << "异常信息是:" << e.what() << endl;
}
}

2

C++小结

  在这里我们对异常进行了揭秘,可能在平时的做题或者工程中很难用到,我们还是要了解它的机制,当我们需要的时候可以及时回忆起来。

-------------本文结束感谢您的阅读-------------
0%