C++异常处理try和throw以及catch的使用

简介: C++异常处理try和throw以及catch的使用

异常捕获的基本构成方式

try // c++异常的处理方式
    {
        // 包含可能抛出异常的语句
    }
    catch(类型名[形参名]) // 捕获特定类型的异常
    {
        // 处理异常的语句 条件是抛出的异常类型是与catch参数类型匹配
    }
    // try捕获异常并不能保证程序就不会崩溃,通常还需要做一下两个操作
    // 1、满足某个条件是显式抛出(throw)一个异常
    // 2、使用catch匹配异常类型 

异常捕获的基本引用

/*
 * @Author: Stylle
 * @Date: 2020-08-25 15:24:03
 * @LastEditors: Stylle
 * @LastEditTime: 2020-08-25 16:59:14
 * @FilePath: \learing-master\异常处理try和throw以及catch.cpp
 */
#include <iostream>
// 本函数会使程序崩溃
void func(int &num)
{
    int nNum = 10;
    int mNum = num;
    if (mNum == 0)
        throw "异常:除数等于0";
    // 如果捕获到异常下面的代码将不会执行
    if (mNum == 1)
        throw 1;
    int oNum = nNum / mNum;
    if (oNum == 0)
    {
        throw "errorCode = 2";
    }
    std::cout << oNum;
}
int main(int argc, char *argv[])
{
    std::cout << "hello world" << std::endl;
    // func(0); //异常
    // 异常处理操作步骤2
    try
    {
        int num = 9999;
        func(num); // 接受异常
    }
    catch (const char *error)
    {
        // 处理异常
        std::cout << error;
    }
    catch (int errorNum)
    {
        //抛出异常接受到整型
        std::cout << "异常数值:" << errorNum;
    }
    catch (...)
    {
        // 捕获所有异常:匹配性能最差,捕获性能最强
        std::cout << "其他异常";
    }
    return 0;
}

try、catch使用方法跟switch有点相识,只不过try指向全局


相关文章
|
4月前
|
C++
C++ 语言异常处理实战:在编程潮流中坚守稳定,开启代码可靠之旅
【8月更文挑战第22天】C++的异常处理机制是确保程序稳定的关键特性。它允许程序在遇到错误时优雅地响应而非直接崩溃。通过`throw`抛出异常,并用`catch`捕获处理,可使程序控制流跳转至错误处理代码。例如,在进行除法运算或文件读取时,若发生除数为零或文件无法打开等错误,则可通过抛出异常并在调用处捕获来妥善处理这些情况。恰当使用异常处理能显著提升程序的健壮性和维护性。
84 2
|
7月前
|
安全 C++
C++中的异常处理与错误处理机制
C++中的异常处理与错误处理机制
87 0
|
6月前
|
C++
C++一分钟之—异常处理try-catch
【6月更文挑战第22天】C++异常处理机制,借助`try`、`catch`、`throw`管理错误,优雅处理异常,防止程序崩溃。`try`包围可能出错的代码,`catch`捕获异常,`throw`引发异常。基本结构是:`try-catch`块中,未捕获的异常将向上抛出。多`catch`块可按顺序捕获不同类型的异常。易错点包括忽视异常传播、不精确的`catch`和资源未清理。通过精确捕获、RAII技术和适当的异常策略,提升代码健壮性和效率。
54 1
|
6月前
|
C++
C++核心技术要点《异常处理详解》
C++核心技术要点《try-throw-catch异常处理详解》
57 2
|
7月前
|
程序员 编译器 C语言
C++中的 throw详解
在 C++ 中,异常处理遵循&quot;抛出-检测-捕获&quot;的流程。异常必须通过 `throw` 显式抛出,例如 `throw 100;` 可以抛出整数类型的异常。动态数组可以通过自定义的 `Array` 类实现,当访问越界或空数组时,会抛出 `OutOfRange` 异常。`throw` 关键字也可用于函数异常规范,指定函数可能抛出的异常类型。然而,C++11 后不再推荐使用异常规范,因为它们可能导致编译器行为不一致。
|
6月前
|
程序员 编译器 C++
探索C++语言宝库:解锁基础知识与实用技能(类型变量+条件循环+函数模块+OOP+异常处理)
探索C++语言宝库:解锁基础知识与实用技能(类型变量+条件循环+函数模块+OOP+异常处理)
52 0
|
7月前
|
程序员 编译器 C++
C++中的异常处理:技术详解与实践
C++中的异常处理:技术详解与实践
124 1
|
7月前
|
C++
C++程序异常处理
C++程序异常处理
52 1
|
6月前
|
C++
C++对C的改进和拓展\异常处理
C++对C的改进和拓展\异常处理
46 0
|
6月前
|
C++
Essential C++ 第7章 异常处理
Essential C++ 第7章 异常处理