当前位置:实例文章 » C#开发实例» [文章]C++异常

C++异常

发布人:shili8 发布时间:2023-06-25 12:52 阅读次数:53

C++异常是一种处理程序运行时错误的机制。当程序运行时发生错误,例如除以零或访问不存在的内存地址,程序会抛出异常。异常可以被捕获并处理,以避免程序崩溃或产生不可预测的结果。

C++中的异常处理机制包括三个关键字:try、catch和throw。try块包含可能会抛出异常的代码,catch块用于捕获并处理异常,throw用于抛出异常。

下面是一个简单的示例,演示了如何使用C++异常处理机制:

c++
#include <iostream>
using namespace std;

int main() {
    int a b;
    cout << Enter two numbers: ;
    cin >> a >> b;

    try {
        if (b == 0) {
            throw Division by zero!;
        }
        cout << Result:  << a / b << endl;
    }
    catch (const char* msg) {
        cerr << Error:  << msg << endl;
    }

    return 0;
}


在上面的示例中,我们首先要求用户输入两个数字。然后,我们使用try块来执行除法操作,并检查除数是否为零。如果除数为零,则使用throw语句抛出一个字符串异常。在catch块中,我们捕获并处理异常,输出错误消息。

除了字符串异常,C++还支持其他类型的异常,例如整数、浮点数、自定义类等。下面是一个使用自定义异常类的示例:

c++
#include <iostream>
#include <string>
using namespace std;

class MyException {
public:
    MyException(const string& msg) : message(msg) {}
    const string& getMessage() const { return message; }
private:
    string message;
};

int main() {
    int a b;
    cout << Enter two numbers: ;
    cin >> a >> b;

    try {
        if (b == 0) {
            throw MyException(Division by zero!);
        }
        cout << Result:  << a / b << endl;
    }
    catch (const MyException& e) {
        cerr << Error:  << e.getMessage() << endl;
    }

    return 0;
}


在上面的示例中,我们定义了一个自定义异常类MyException,它包含一个字符串成员变量message和一个构造函数。在try块中,我们使用throw语句抛出一个MyException异常。在catch块中,我们捕获并处理MyException异常,并输出错误消息。

总之,C++异常处理机制是一种强大的工具,可以帮助我们处理程序运行时错误。通过使用try、catch和throw关键字,我们可以捕获并处理异常,以避免程序崩溃或产生不可预测的结果。

其他信息

其他资源

Top