C++基础-异常处理

C++异常处理(较浅)

基本概念

异常处理,是编程语言或计算机硬件里的一种机制,用于处理软件或信息系统中出现异常的情况,保证程序运行的稳定性和健壮性,防止程序崩溃。但是过渡使用会影响程序运行的效率。

C++基础-异常处理

把可能出现的问题放到try里,进行监控

throw前面的语句如果满足,就抛出 (下面的语句就不执行了),抛出的变量或是其他称为异常对象,

catch 捕获try中可能出现的异常,catch(参数)这个参数只能捕获 一种类型的异常对象,如果要捕获其他类型,则需要再写一个catch语句

catch(...){  //...其他种类的异常(除了上面所写的异常),放在最下面,普遍捕获
    cout << "捕获其他异常" << endl;
}

例子

面向结果编程(哈哈哈)

小于10输出0;大于100输出1;之间输出”10 < a < 100″…

#include
#include
using namespace std;

int main(){
    int a;
    cout << "请输入要测试的数字:";
    cin >> a;
    try{
        if(a < 10) throw 0;
        if(a > 100) throw 1;
        throw "10 < a < 100";
    }
    catch(int a){
        cout << a << endl;
    }
    catch(const char *str){
        cout << (string)str << endl;
    }

    return 0;
}

C++基础-异常处理

当显示出terminate called after throwing an instance of ‘char const*’,出现这种情况的原因就是在catch中异常并没有匹配上去,C++的析构函数抛出异常将自动调用terminate()终止程序。

catch(const char *str) //加一个Cconst就可以了

Original: https://www.cnblogs.com/wht-de-bk/p/16340316.html
Author: T,a,o
Title: C++基础-异常处理

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/570989/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 【PHP】熟悉php对应的DES相关加解密,与java、C#对接加解密工程

    1、记一次与java和C# 对接DES加解密工程; 2、主要是用到DES的相关加密方案,链接:https://docs.mallcoo.cn/PosPoints/APIDoc_OP…

    Java 2023年5月29日
    064
  • Java代码如何创建GUID字符串呢?

    随机字符串是我们日常开发中,经常使用的一种字符串,那么下文将讲述具有代表性的字符串GUID GUID字符串是全球唯一标识,是我们经常使用的一种唯一标识 如:分布式系统中使用其作为表…

    Java 2023年6月15日
    054
  • 02 MyBatis & Druid

    MyBatis MyBatis 是灵活的 SQL 映射, 不想 Hibrnate 是纯的 ORM, 个人还是比较写 SQL 语句, 不喜欢纯的 ORM. 首先引入 Maven 依赖…

    Java 2023年5月30日
    053
  • 在VS2013下配置BOOST库

    1、安装Boost库 (1)、首先打开Boost的官网(http://www.boost.org/),找到下载位置,如下图中红框所示,此时最新的版本是1.64.0: (2)、点击进…

    Java 2023年6月5日
    061
  • 第三周

    第三周 1.测试成功的接口再次测试报错 原因:之前在查询时更改了方法,由Mybatis Plus 查询的方式改为了xml,同时在实体类中添加了字段做连表查询,导致之前所有用Myba…

    Java 2023年6月7日
    073
  • JeeSite 快速开发平台、架构特点、安全方面、为什么好、优势

    注入产生的原理: 数据库设置为GBK编码: 宽字节注入源于程序员设置MySQL连接时错误配置为:set character_set_client=gbk,这样配置会引发编码转换从而…

    Java 2022年10月16日
    0264
  • Liunx(CentOS)安装Nacos(单机启动,绑定Mysql)

    Liunx安装Nacos(单机启动,绑定Mysql) 一,准备安装包 github下载点 二,在/usr/local/目录下创建一个文件夹用于上传和解压Nacos cd /usr/…

    Java 2023年6月15日
    057
  • 2022-8-26 jq简单了解

    注入产生的原理: 数据库设置为GBK编码: 宽字节注入源于程序员设置MySQL连接时错误配置为:set character_set_client=gbk,这样配置会引发编码转换从而…

    Java 2022年11月7日
    0176
  • JAVA设计模式-单例模式

    注入产生的原理: 数据库设置为GBK编码: 宽字节注入源于程序员设置MySQL连接时错误配置为:set character_set_client=gbk,这样配置会引发编码转换从而…

    Java 2022年11月10日
    0130
  • java8特性

    Lambda表达式 lambda表达式:本质就是一个函数式接口的实例对象。 语法: lambda&#x5F62;&#x53C2;&#x5217;&#…

    Java 2023年6月15日
    061
  • 【进阶】Spring中的注解与反射

    【进阶】Spring中的注解与反射 【进阶】Spring中的注解与反射 前言 一、内置(常用)注解 1.1@Overrode 1.2@RequestMapping 1.3@Requ…

    Java 2023年6月6日
    064
  • Executors创建四种线程池

    注入产生的原理: 数据库设置为GBK编码: 宽字节注入源于程序员设置MySQL连接时错误配置为:set character_set_client=gbk,这样配置会引发编码转换从而…

    Java 2022年9月22日
    0259
  • 【每日算法】动态规划一

    斐波那契数,通常用 F(n) 表示,形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是: F(0) = 0,F(1) = 1F…

    Java 2023年6月9日
    057
  • 数仓Hive和分布式计算引擎Spark多整合方式实战和调优方向

    注入产生的原理: 数据库设置为GBK编码: 宽字节注入源于程序员设置MySQL连接时错误配置为:set character_set_client=gbk,这样配置会引发编码转换从而…

    Java 2022年10月11日
    0205
  • Gateway

    简介 Gateway是在Spring生态系统之上构建的API网关服务,基于Spring 5,Spring Boot 2和 Project Reactor等技术。 Gateway旨在…

    Java 2023年6月8日
    062
  • Spring-data-jpa和mybatis的比较及两者的优缺点?

    通过limit来获得分页记录 mybatis获得总记录数好像并不是通过执行count语句来获得的,可能是通过游标cursor的方式来获得的,通过druid监控,其只执行一条sql语…

    Java 2023年5月30日
    048
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球