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关键字,我们可以捕获并处理异常,以避免程序崩溃或产生不可预测的结果。

