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

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

  • 相关阅读:
    IDEA的database插件无法链接mysql的解决办法(08001错误)
    window.location.href传参/传值汇总
    toggleClass() 方法
    File file=new File ()
    MultipartFile接口
    @RequestParam注解字参数详解
    在微信下载的浏览器判断问题
    JS可控制的图片自动循环播放查看效果
    PHP接口的声明与引用
    js时间
  • 原文地址:https://www.cnblogs.com/wyuzl/p/6212914.html
Copyright © 2011-2022 走看看