63异常处理

简介: 63异常处理

C++入门——60s从0到1

异常处理

 

在C++编程中,异常处理是一种用于处理程序运行时错误的机制。当代码出现错误时,程序将抛出一个异常,如果不对其进行处理,程序将终止运行并输出错误信息。在这篇文章中,我们将详细讲解C++中的异常处理机制,包括如何抛出异常、如何捕获异常以及如何处理异常。

 

抛出异常

 

在C++中,可以使用`throw`语句来抛出一个异常。当程序运行到`throw`语句时,程序将抛出一个异常并终止当前函数的执行。下面是一个抛出异常的示例代码:

 

#include <iostream>
using namespace std;
 
int divide(int x, int y) {
    if (y == 0) { // 如果y为0,则抛出异常
        throw "除数不能为0";
    }
    return x / y;
}
 
int main() {
    try {
        int result = divide(10, 0); // 调用divide函数,并将结果存储在result变量中
        cout << "result = " << result << endl;
    } catch (const char* msg) { // 捕获抛出的异常
        cerr << "Error: " << msg << endl;
    }
    return 0;
}

 

在这个例子中,程序定义了一个名为`divide`的函数来计算两个整数的商。如果除数为0,该函数将抛出一个异常。在`main`函数中,程序调用了`divide`函数,并将结果存储在变量`result`中。由于除数为0,`divide`函数将抛出一个异常。最后,程序使用`try-catch`语句来捕获这个异常并输出错误信息。需要注意的是,在抛出异常时,我们可以使用一个字符串或字符串常量作为异常信息。

 

捕获异常

 

在C++中,可以使用`try-catch`语句来捕获异常。当程序运行到`try`语句块中的代码时,如果代码块中出现了异常,程序将跳转到与之对应的`catch`语句块中执行相应的操作。下面是一个捕获异常的示例代码:

 

#include <iostream>
using namespace std;
 
int divide(int x, int y) {
    if (y == 0) { // 如果y为0,则抛出异常
        throw "除数不能为0";
    }
    return x / y;
}
 
int main() {
    try {
        int result = divide(10, 0); // 调用divide函数,并将结果存储在result变量中
        cout << "result = " << result << endl;
    } catch (const char* msg) { // 捕获抛出的异常
        cerr << "Error: " << msg << endl;
    }
    return 0;
}

 

在这个例子中,程序使用`try-catch`语句来捕获由`divide`函数抛出的异常。如果出现了异常,程序将跳转到与之对应的`catch`语句块中执行相应的操作。在这个例子中,我们输出了一条错误信息。需要注意的是,在`catch`语句块中,我们可以根据需要处理不同的异常类型或自定义异常类型。

目录
相关文章
|
23天前
异常处理
异常处理
|
3天前
|
存储 C++
C++ 异常处理机制详解:轻松掌握异常处理技巧
C++ 异常处理提供结构化错误管理,增强程序健壮性。通过`throw`抛出异常,`try-catch`捕获并处理。示例展示了当年龄小于18时抛出异常。优点包括提高健壮性和代码可维护性,但可能降低性能并复杂化代码。另外,介绍了四种在C++中相加两个数的方法,包括使用运算符、函数、类、STL函数和lambda表达式。
11 0
|
2月前
|
C++
11. C++异常处理
11. C++异常处理
18 0
11. C++异常处理
|
2月前
|
C++
C++ 异常处理
C++ 异常处理
|
2月前
|
存储 安全 Java
【C++】—— 异常处理
【C++】—— 异常处理
|
2月前
|
C++
C++异常处理详解
C++异常处理详解
16 0
|
10月前
|
C#
C#异常处理
C#异常处理
44 0
|
6月前
|
Java 编译器 C++
C++异常处理
C++异常处理
21 0
|
9月前
七 异常处理
七 异常处理
24 0
|
12月前
|
C++
C++异常处理的实现
🐰C++异常处理的实现 🌸try的嵌套异常处理语句 🌸异常与函数 🌸异常类