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`语句块中,我们可以根据需要处理不同的异常类型或自定义异常类型。

目录
相关文章
|
2月前
try...except异常处理
【10月更文挑战第16天】try except的一些异常处理方法
35 2
|
2月前
|
SQL Java 程序员
异常处理
【10月更文挑战第10天】
13 2
|
3月前
|
Python
ython之对异常处理
ython之对异常处理
|
7月前
|
C++
C++程序异常处理
C++程序异常处理
45 1
|
7月前
|
C++
11. C++异常处理
11. C++异常处理
45 0
11. C++异常处理
|
7月前
|
C++
C++ 异常处理
C++ 异常处理
|
7月前
|
存储 安全 Java
【C++】—— 异常处理
【C++】—— 异常处理
|
C#
C#异常处理
C#异常处理
65 0
|
7月前
|
C++
C++异常处理详解
C++异常处理详解
38 0
|
Java 编译器 C++
C++异常处理
C++异常处理
39 0