首页 > 代码库 > C++基础知识(4)---例外、异常处理
C++基础知识(4)---例外、异常处理
对Java熟悉的朋友们都很清楚,java中的异常处理机制是非常完善的。并且java强制使用异常处理,用户必须对有可能出现异常的情况进行处理。
在C++中并没有强制用户使用异常处理,但是使用异常处理将会使您的程序更加的简健壮。
在C++中,一个函数在执行的过程中可以识别异常,并告诉异常的发生。这种通告机制称为 抛出异常 ,使用关键字throw。异常抛出后,可以由函数的调用者进行 捕捉 并进行处理,使用关键字catch .我们一般讲可能会抛出异常的程序块放到 try 语句中去执行,以便用 catch 来进行捕捉。
1 try
2 {
3 f(); //f() 可能抛出一些异常
4 }
5
6 catch(int a)
7 {
8 ............
9 }
10 catch(int b)
11 {
12 .........
13 }
try 程序块可能会抛出异常,有catch 程序块来进行捕捉。catch 块之间的顺序可以任意,但是必须位于 try 之后,另外catch 块会将抛出的异常类型进行对比,如果匹配则进行捕捉
举一个例子
1 #include <iostream>
2 #include <string>
3
4 using namespace std;
5
6 void main()
7 {
8 string str;
9 int index, length;
10 while (true)
11 {
12 cout << "please enter the index and length to erase:" << endl;
13 cin >>index>>length;
14 try
15 {
16 str.erase(index, length);
17 }
18 catch (out_of_range)
19 {
20 continue;
21 }
22 break;
23 }
24 }
如果输入的index大于字符串的长度将会引发一个异常out_of_range,即数组下标越界,这时异常就会被catch语句块捕捉到并进行处理。
(运行之后感觉这个程序有问题,结果总是不确定的,但还不到是什么问题。。。。。。。。。。)
C++基础知识(4)---例外、异常处理
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。