c++

c++ example如何展示异常处理机制

小樊
81
2024-09-27 18:14:45
栏目: 编程语言

在C++中,异常处理机制主要通过trycatchthrow这三个关键字来实现。下面是一个简单的例子,展示了如何使用这些关键字来处理异常:

#include <iostream>
#include <stdexcept>

int main() {
    int num1 = 10;
    int num2 = 0;
    int result = 0;

    try {
        // 尝试执行可能会抛出异常的代码
        if (num2 == 0) {
            throw std::runtime_error("除数不能为0");
        }
        result = num1 / num2;
    } catch (const std::runtime_error& e) {
        // 捕获并处理特定类型的异常
        std::cerr << "捕获到运行时错误: " << e.what() << std::endl;
    } catch (...) {
        // 捕获所有类型的异常
        std::cerr << "捕获到未知异常" << std::endl;
    }

    std::cout << "结果是: " << result << std::endl;

    return 0;
}

在这个例子中,我们尝试执行一个除法操作,但是除数为0,这会导致一个运行时错误。我们使用try块来包裹可能会抛出异常的代码。如果try块中的代码抛出了异常,程序会立即跳转到相应的catch块中处理异常。

我们使用了两个catch块来处理异常。第一个catch块捕获并处理特定类型的异常,即std::runtime_error。第二个catch块捕获所有类型的异常,即...。这样可以确保程序不会因为未处理的异常而意外终止。

catch块中,我们可以使用e.what()方法来获取异常的描述信息,并将其输出到控制台或者其他地方进行处理。

需要注意的是,我们在catch块中并没有重新抛出异常,因为在这个例子中,我们只是想要处理异常,而不是将异常继续向上传递。如果你需要在catch块中重新抛出异常,可以使用throw;语句来实现。

0
看了该问题的人还看了