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指向全局


相关文章
|
2月前
|
安全 C++
C++中的异常处理与错误处理机制
C++中的异常处理与错误处理机制
29 0
|
12天前
|
C++
C++一分钟之—异常处理try-catch
【6月更文挑战第22天】C++异常处理机制,借助`try`、`catch`、`throw`管理错误,优雅处理异常,防止程序崩溃。`try`包围可能出错的代码,`catch`捕获异常,`throw`引发异常。基本结构是:`try-catch`块中,未捕获的异常将向上抛出。多`catch`块可按顺序捕获不同类型的异常。易错点包括忽视异常传播、不精确的`catch`和资源未清理。通过精确捕获、RAII技术和适当的异常策略,提升代码健壮性和效率。
10 1
|
22天前
|
C++
C++核心技术要点《异常处理详解》
C++核心技术要点《try-throw-catch异常处理详解》
18 2
|
6天前
|
程序员 编译器 C++
探索C++语言宝库:解锁基础知识与实用技能(类型变量+条件循环+函数模块+OOP+异常处理)
探索C++语言宝库:解锁基础知识与实用技能(类型变量+条件循环+函数模块+OOP+异常处理)
10 0
|
14天前
|
C++
C++对C的改进和拓展\异常处理
C++对C的改进和拓展\异常处理
8 0
|
2月前
|
程序员 编译器 C语言
C++中的 throw详解
在 C++ 中,异常处理遵循&quot;抛出-检测-捕获&quot;的流程。异常必须通过 `throw` 显式抛出,例如 `throw 100;` 可以抛出整数类型的异常。动态数组可以通过自定义的 `Array` 类实现,当访问越界或空数组时,会抛出 `OutOfRange` 异常。`throw` 关键字也可用于函数异常规范,指定函数可能抛出的异常类型。然而,C++11 后不再推荐使用异常规范,因为它们可能导致编译器行为不一致。
33 4
|
2月前
|
程序员 编译器 C++
C++中的异常处理:技术详解与实践
C++中的异常处理:技术详解与实践
|
19天前
|
C++
Essential C++ 第7章 异常处理
Essential C++ 第7章 异常处理
|
2月前
|
C++
C++程序异常处理
C++程序异常处理
25 1
|
2月前
|
NoSQL 测试技术 C++
C++的异常处理及错误调试技巧
C++的异常处理及错误调试技巧
19 0