在Ubuntu中,C++异常处理主要使用try
、catch
和throw
关键字。下面是一个简单的示例,展示了如何在C++中使用异常处理:
#include <iostream>
#include <stdexcept>
int main() {
int num1 = 10;
int num2 = 0;
int result;
try {
if (num2 == 0) {
throw std::runtime_error("除数不能为0");
}
result = num1 / num2;
std::cout << "结果是: " << result << std::endl;
} catch (const std::runtime_error& e) {
std::cerr << "捕获到异常: " << e.what() << std::endl;
}
return 0;
}
在这个示例中,我们首先包含了<iostream>
和<stdexcept>
头文件。<iostream>
用于输入输出操作,<stdexcept>
包含了一些常用的异常类。
在main
函数中,我们定义了两个整数变量num1
和num2
,并尝试将num1
除以num2
。如果num2
为0,我们抛出一个std::runtime_error
异常,并传递一个描述错误的字符串。
try
块中的代码是可能引发异常的代码。如果在try
块中发生异常,程序会立即跳转到与该异常类型匹配的catch
块。在这个例子中,我们捕获了std::runtime_error
类型的异常,并输出异常信息。
如果你想要捕获其他类型的异常,可以在try
语句后面添加更多的catch
块。例如,你可以捕获所有类型的异常,如下所示:
try {
// 可能引发异常的代码
} catch (const std::exception& e) {
// 捕获所有从std::exception派生的异常
} catch (...) {
// 捕获所有其他类型的异常
}
注意,在C++中,异常处理是一种可选的特性,不是强制性的。你可以根据需要选择是否使用异常处理。