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语言中的符号常量EOF

    关于“深入解读C语言中的符号常量EOF”的完整攻略,我会包含以下内容: 1. 什么是EOF EOF的全称是End Of File (文件结束符),是C语言标准库中定义的一个符号常量,其值为-1。根据C语言标准定义,EOF使用宏定义实现,其定义在stdlib.h或stdio.h头文件中。 EOF是一个特殊的,无格式字符,通常用于标识文件结束的位置。当读取文件时…

    C 2023年5月23日
    00
  • C 数据类型

    当我们使用 C 语言进行编程时,需要用到不同的数据类型来存储和操作不同的数据。C 语言中支持多种数据类型,包括整型、浮点型、字符型等。在本文中,我将详细讲解 C 数据类型的完整使用攻略,包括数据类型的定义、使用和常见问题等方面。 数据类型的定义 在 C 语言中,可用的数据类型包括基本数据类型和派生数据类型。 基本数据类型 C 语言中的基本数据类型包括整型、浮…

    C 2023年5月10日
    00
  • C语言实现通讯录系统课程设计

    C语言实现通讯录系统课程设计 本次课程设计旨在通过实现一个简单的通讯录系统,帮助初学者巩固C语言基础知识,并初步了解数据结构相关操作和应用。 基本功能 通讯录系统主要包含以下功能: 添加联系人 删除联系人 修改联系人信息 查找联系人 显示所有联系人信息 清空联系人 设计思路 通讯录系统主要使用链表数据结构作为存储方式,并且通过读写文件将链表数据结构永久保存到…

    C 2023年5月23日
    00
  • mysql全面解析json/数组

    关于“mysql全面解析json/数组”的完整攻略,主要有以下几个方面需要讲解: 1. 创建关联数组 MySQL提供了将JSON数据转换为数据库中的表格格式的能力。我们可以使用CREATE TABLE语句来创建一个包含JSON属性的表格。下面是一个例子: CREATE TABLE inventory (id INT PRIMARY KEY, name VAR…

    C 2023年5月23日
    00
  • Json格式详解

    Json格式详解 什么是Json? JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于阅读和编写,并易于机器解析和生成。它基于JavaScript语言的一个子集。JSON采用键值对的方式来描述信息,通过大括号{}包围对象,通过方括号[]包围数组。 Json格式规则 数据在名称/值对中 数据由逗号分隔 大括号{}包…

    C 2023年5月23日
    00
  • C程序 查找两个数字的最小公倍数

    首先,在你的网站上创建一个名为“C程序 查找两个数字的最小公倍数”的页面或文章,为其添加一个适当的标题。 在页面中,先简要介绍最小公倍数的概念和计算方法。可以引用一些相关的数学知识。 给出代码的具体说明。可以使用代码块标记,将代码复制到文本编辑器中然后添加到文章中。代码需要包含详细的注释,以便读者理解其逻辑。 给出一个简单示例,用于说明程序如何工作。比如,可…

    C 2023年5月9日
    00
  • Linux折腾记(八):使用GCC和GNU Binutils编写能在x86实模式运行的16位代码

    Linux折腾记(八)的主题是如何使用GCC和GNU Binutils编写能在x86实模式运行的16位代码。针对这个主题,我们可以分为以下几步。 步骤1:准备工作 在开始编写代码之前,我们需要安装在Ubuntu系统上安装GCC和GNU Binutils。可以使用以下命令进行安装: sudo apt-get update sudo apt-get instal…

    C 2023年5月23日
    00
  • 详解C++编程中类的声明和对象成员的引用

    我来详细讲解一下“详解C++编程中类的声明和对象成员的引用”的完整攻略。 什么是C++中的类 类是C++中面向对象编程的基本概念,它是一种描述对象属性和行为的数据类型。一个类封装了数据和方法(函数)来描述所引用对象的特性。 声明类 在C++中声明一个类,需要使用 class 关键字,接着在大括号中定义类的数据成员和成员函数,如下所示: class Human…

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