• C++异常处理机制


    为了不让程序由于错误而中断,C++提供了异常处理机制。

    简单的说,异常的抛出与捕捉的步骤如下:

    (1)在底层函数throw异常对象;

    (2)将可能抛出异常的程序段嵌在try块之中;

      (3)  紧随try块的catch块分别对不同类型的异常对象作出处理;

    (4)如果匹配的处理器未找到,则运行函数terminate将被自动调用,其缺省功能是调用abort终止程序;

    (5)处理不了的异常,可以在catch的最后一个分支,使用throw语法,向上扔。

    异常对象是类对象时,用于接收异常对象有三种形式:

    (1)catch(A  a)

    (2)catch(A& a)

    (3)catch(A* a)

    第一种是直接以对象 a接收,a其实是通过A类的拷贝构造函数将异常抛出的对象复制给了它,所以系统会有两次构造和析构函数的调用

    第二种是以引用对象a接收,那么a不会被重新构造,而是和异常抛出的对象共同表示同一块内存,所以系统只有一次构造和析构函数的调用

    第二种是以指针对象a接收,虽然a与异常抛出的对象共同指向同一块内存,但是析构内存后,还需要手动释放指针变量,即delete a。

    所以,在异常对象是类对象时,catch的形参要用引用来接收,这样既方便又不容易出错。

     
  • 相关阅读:
    jmeter4-数据库性能测试
    jmeter2-接口性能测试
    jmeter1-测试流程
    jmeter-beanshell随机取数组一项
    最强MySQL数据库设计规范... (转载)
    Python词云
    adb常用命令
    jmeter线程组多个请求之间的参数关联
    VisualVM使用与调优案例
    mysql调优工具tuning-primer.sh的使用
  • 原文地址:https://www.cnblogs.com/lyjbk/p/13182490.html
Copyright © 2020-2023  润新知