【编程学习进阶之路】C++中的异常处理!

C++中的异常处理机制主要使用try、throw和catch三个关键字。异常处理是一种重要的编程技术,用于处理程序执行过程中可能出现的错误和异常情况。通过合理使用这些关键字,可以使我们的程序更加健壮和可靠。

#include <iostream>
using namespace std;
int main()
{
    double m = 1, n = 0;
    try {
        cout << "before dividing." << endl;
        if (n == 0)
            throw - 1;  //抛出int型异常
        else if (m == 0)
            throw - 1.0;  //拋出 double 型异常
        else
            cout << m / n << endl;
        cout << "after dividing." << endl;//学习交流群:558970390
    }
    catch (double d) {
        cout << "catch (double)" << d << endl;
    }
    catch (...) {
        cout << "catch (...)" << endl;
    }
    cout << "finished" << endl;
    return 0;
}
//运行结果
//before dividing.
//catch (...)
//finished

在C++中,异常处理的执行流程如下:

1. try块:首先,程序执行try包裹的语句块。在try块内部,我们编写可能引发异常的代码段。如果在这个过程中没有异常发生,程序会继续执行try块外部的代码,跳过catch块。

2. throw语句:如果在try块中发生了异常情况,我们可以使用throw关键字抛出异常。异常可以是各种数据类型的信息,不仅仅限于数字,我们还可以定义自己的异常类来更好地描述问题。

3. catch块:一旦异常被抛出,程序会在catch块中寻找匹配的异常处理代码。catch块根据throw抛出的异常类型进行精确匹配,不会发生类型转换。如果找到匹配的catch块,它会处理异常,然后程序将继续执行catch块之后的代码。

如果没有找到匹配的catch块,程序会报告未处理的异常,这可能导致程序终止。为了避免未处理的异常,我们可以使用catch(...)的方式来捕获任何异常类型,但这通常不被推荐,因为它会让程序更难调试。

另外,如果在catch块内处理了异常,但当前函数不打算继续执行,或者已经处理了异常并希望通知上一层的调用者,可以在catch块内再次使用throw语句抛出异常。

异常处理在C++编程中是一项非常重要的技能,它可以帮助我们更好地应对程序运行时可能出现的问题,提高代码的可维护性和可靠性。合理地结合try、throw和catch关键字,可以有效处理各种异常情况,确保程序的稳定运行。

猜你喜欢

转载自blog.csdn.net/2301_79364874/article/details/133882314