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语句块捕捉到并进行处理。

   (运行之后感觉这个程序有问题,结果总是不确定的,但还不到是什么问题。。。。。。。。。。)

 

转载于:https://www.cnblogs.com/wyuzl/p/6212914.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值