zoukankan      html  css  js  c++  java
  • 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语句块捕捉到并进行处理。

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

  • 相关阅读:
    SharePoint 2013 配置基于表单的身份认证
    SharePoint 2013 场解决方案包含第三方程序集
    SharePoint 2010 站点附加数据升级到SP2013
    SharePoint 2013 在母版页中插入WebPart
    SharePoint 2013 搭建负载均衡(NLB)
    SharePoint 部署解决方案Feature ID冲突
    SharePoint 2013 配置基于AD的Form认证
    SharePoint Server 2016 Update
    SharePoint 2013 为用户组自定义EventReceiver
    SharePoint 2013 JavaScript API 记录
  • 原文地址:https://www.cnblogs.com/wyuzl/p/6212914.html
Copyright © 2011-2022 走看看