c++中try catch的用法小结

当在C++代码中使用异常处理时,我们必须使用“try-catch”块来捕捉和处理异常。下面是一些关于“C++中try catch的用法小结”的攻略:

一、try-catch块的基本用法

使用try-catch块来捕捉异常,代码块包围了可能引发异常的代码。

try {
    //可能引发异常的代码
}
catch(ExceptionType name) {
    //处理程序
}

这里,try块中的代码可能抛出ExceptionType类型的异常。如果这样,异常会直接按照catch代码块的内容来处理。在catch代码块中,我们可以处理异常,输出异常信息或者对其他应该处理的事情进行处理。

二、try、catch和throw的用法

当我们需要在代码中手动抛出异常,并在另一个地方捕捉到它时,我们需要使用throw语句。

try {
    //可能引发异常的代码
    throw ExceptionType(name);
}
catch(ExceptionType name) {
    //处理程序
    //输出异常信息等
}

在这种情况下,我们首先运行代码,在抛出异常之前:“try”块中的任何异常代码都无法往下执行。一旦抛出异常,我们就跳转到“catch”块中,并使用“name”参数来传递异常。

三、示例1:抛出自定义异常

在此示例中,我们定义了一个类“Exception”,它可以表示在该类中输入负数时所引发的自定义异常。在这种情况下,会在“try”块中调用“setNumber”函数,并根据异常输出了一个相应的消息。

class Exception {
    private:
        int num;

    public:
        Exception(int n) {
            num = n;
        }

        int getNum() {
        return num;
    }
};

void setNumber(int num) {
    if(num < 0)
        throw Exception(num);
}

int main() {
    try {
        setNumber(-3);
    } 
    catch(Exception& e ) {
        std::cout<<"输入的值为"<<e.getNum()<<",不能为负数"<<std::endl;
    }
    return 0;
}

四、示例2:嵌套的try…catch块

这里的示例中包含了两个嵌套的try-catch块,以便实现更完整的异常处理。在这里,我们使用了一个C++标准库函数“stoi”,它可以将字符串类型转换为整数类型。但如果字符串无法转换,则抛出异常,并将其捕捉并处理。

int main() {
    std::string s = "-5";
    int number1, number2;

    try {
        number1=std::stoi(s);
        try{
            number2=std::stoi("not_a_number");
        }
        catch(std::invalid_argument& e){
            std::cout<<"无法解析的数字"<<std::endl;
        }
    }
    catch (std::invalid_argument& e) {
        std::cout<<"无法解析的数字"<<std::endl;
    }

    return 0;
}

以上示例展示了异常处理的基本原理,C++中try-catch的用法以及使用自定义异常处理程序和嵌套的try-catch块来使异常处理更加完整和灵活。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:c++中try catch的用法小结 - Python技术站

(0)
上一篇 2023年5月22日
下一篇 2023年5月22日

相关文章

  • C语言之双向链表详解及实例代码

    C语言之双向链表详解及实例代码 本文将详细讲解C语言中双向链表的实现原理及实例代码,让读者能够深入理解双向链表的基本概念和用法。 什么是双向链表? 双向链表是一种常见的数据结构,它由多个节点构成,每个节点包含两个指针,一个指向前一个节点,一个指向后一个节点,在实际应用中可以用来存储一系列元素,以股票数据为例,将每支股票的编码和名称存储在一个双向链表中,方便快…

    C 2023年5月24日
    00
  • 使用c++编程实现简单的打字小游戏

    下面是使用C++编程实现简单的打字小游戏的完整攻略: 1. 游戏设计 首先,我们需要设计这个小游戏的基本玩法和功能。这个小游戏的基本玩法就是要求玩家在规定的时间内输入尽可能多的单词。具体实现过程如下: 随机生成一个单词,并将其存储在一个字符串中; 将这个字符串输出到屏幕上,并等待玩家的输入; 获取玩家输入的字符串,并将其与生成的单词进行比较,看输入是否正确;…

    C 2023年5月23日
    00
  • Clion配置C语言环境的步骤详解

    Clion配置C语言环境的步骤详解 在使用Clion编写C语言程序时,需要先进行环境配置,具体步骤如下: 步骤一:安装CMake Clion使用CMake来管理项目,因此需要先安装CMake。 具体步骤如下: 访问CMake官网:https://cmake.org/ 下载相应操作系统的安装程序,例如Windows系统下载 .msi文件。 安装CMake。 步…

    C 2023年5月23日
    00
  • C++基础入门教程(一):基础知识大杂烩

    让我来详细讲解一下“C++基础入门教程(一):基础知识大杂烩”的完整攻略。 一、课程介绍 本教程主要介绍了C++的基础知识,包括了数据类型、变量、常量等基本概念,注重实践,涉及大量的代码示例。通过学习本教程,读者可以初步了解C++编程,并进一步深入学习C++。 二、目录 本教程的目录如下: 数据类型 常量和变量 运算符 选择结构 循环结构 数组 函数 标准输…

    C 2023年5月24日
    00
  • C语言版医院管理系统

    C语言版医院管理系统攻略 介绍 C语言版医院管理系统是一个完整的医院管理系统,可以实现包括病人信息管理、医生信息管理、医院排班管理、医生出诊信息管理、病历管理等多项功能。该系统可以实现对医院各种资源和信息的自由管理,方便医院管理人员的工作。 系统需求 操作系统:Windows或Linux C语言编译器:gcc或VS 操作说明 1. 运行程序 下载并解压缩医院…

    C 2023年5月23日
    00
  • C语言零基础入门(2)

    当学习C语言的时候,需要掌握很多基础知识,掌握这些知识才能正常地写出代码。本文将解释C语言的入门知识。 变量 变量指代内存数据。变量有多个类型,包括整数、浮点数、字符等等。编程时必须考虑变量的类型,这会对程序产生不同的影响。 声明变量 在C语言中,需要先声明一个变量,然后才能使用它,如下所示: int num; float x; char letter; 这…

    C 2023年5月23日
    00
  • C++小游戏tankwar之界面绘制的详细过程

    下面是“C++小游戏tankwar之界面绘制的详细过程”的完整攻略。 界面绘制的流程 初始化SDL 在使用SDL进行图形绘制前,需要进行SDL库的初始化。调用SDL_Init函数即可进行初始化。同时还需要对SDL图形界面进行设置,包括窗口大小、窗口名称等。 SDL_Init(SDL_INIT_VIDEO); SDL_Window* window = SDL_…

    C 2023年5月23日
    00
  • c字符串,string对象,字符串字面值的区别详解

    C字符串,string对象,字符串字面值的区别详解 C字符串 C语言中的字符串是以字符数组的形式存储的,以空字符(\0)结尾。对于一个长度为n的字符串,需要定义一个长度为n+1的字符数组用于存储该字符串。C字符串通常被称为字符数组,其定义形式如下: char str[] = "Hello, World!"; // 字符串字面值 strin…

    C 2023年5月22日
    00
合作推广
合作推广
分享本页
返回顶部