zoukankan      html  css  js  c++  java
  • 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的形参要用引用来接收,这样既方便又不容易出错。

     
  • 相关阅读:
    PHP-循环结构-数组
    PHP-数据类型-运算符
    数据库-mysql语句-查-WEB服务器
    数据库-mysql语句-查
    数据库-SQL语句:删除和修改语句-列类型-列约束
    软件工程-生命周期
    网络电视精灵
    小型资源管理器
    动态生成控件 并设置只能输入数字 和小数点
    C#七大原则
  • 原文地址:https://www.cnblogs.com/lyjbk/p/13182490.html
Copyright © 2011-2022 走看看