zoukankan      html  css  js  c++  java
  • 异常安全

    异常

      异常是程序在执行期间产生的问题
      C++异常是指在程序运行时发生的特殊情况,如除零操作
      异常提供了一种转移程序控制权的方式
    

    异常处理的关键字

      - throw:当问题出现时,程序会抛出一个异常。这是通过使用 throw 关键字来完成的。
      - try: try 块中的代码标识将被激活的特定异常,它后面通常跟着一个或多个 catch 块。
      - catch: 在您想要处理问题的地方,通过异常处理程序捕获异常。catch 关键字用于捕获异常。
    

    throw表达式

    throw的语法格式
    throw 表达式;
    
      抛出异常即检测是否发生异常,在C++中,采用 throw语句来实现
      如果检测到产生异常,则抛出异常
      异常是一个表达式,其值的类型可以是基本类型,也可以是类
    

    try-catch语句块

    try-catch的语法格式
    try
    {
      //语句块
    }
    catch(异常类型)
    {
      //异常处理
    }
    catch(异常类型)
    {
      //异常处理
    }
    
      try...catch语句块的 catch可以有多个,但至少要有一个catch
    
    try……catch语句的执行过程
      - 执行 try块中的语句,如果执行的过程中没有异常拋出,那么执行完后就执行最后一个 catch块后面的语句,所有 catch块中的语句都不会被执行;
      - 如果 try块执行的过程中拋出了异常,那么拋出异常后立即跳转到第一个“异常类型”和拋出的异常类型匹配的 catch块中执行(称作异常被该 catch块“捕获”),执行完后再跳转到最后一个 catch块后面继续执行。
    

    异常示例

    #include <iostream>
    
    using std::cin;
    using std::cout;
    using std::endl;
    
    void test()
    {
      double x;
      double y;
      cin >> x >> y;
    
      try
      {
        if(0 == y)
        {
          throw y;
        }
        else
        {
          cout << "x / y = " << x / y << endl;
        }
      }
      catch(double d)
      {
        cout << "catch(double)" << endl;
      }
      catch(int e)
      {
        cout << "catch(int)" << endl;
      }
    }
    
    int main()
    {
      test();
      return 0;
    }
    
  • 相关阅读:
    centos6.5下的mysql5.6.30安装
    mysql常见错误
    fpm打包redis3.0.7
    centos6.5安装fpm打包工具
    centos6.5安装flume
    centos6.5 安装mono
    利用rsyslog 对linux 操作进行审计
    CentOS7修改服务器主机名方法
    CentOS 7 修改网卡名称为eth
    keepalived配置日志
  • 原文地址:https://www.cnblogs.com/xkyrl/p/14678962.html
Copyright © 2011-2022 走看看