在C++中,错误处理通常使用异常处理机制。C++标准库提供了<exception>
头文件,其中包含了一些基本的异常类,如std::exception
、std::runtime_error
等。你可以根据需要自定义异常类来表示特定的错误。
以下是一个简单的示例,展示了如何在C++中使用异常处理机制进行错误处理:
#include <iostream>
#include <stdexcept>
// 自定义异常类
class MyException : public std::runtime_error {
public:
explicit MyException(const std::string& message)
: std::runtime_error(message) {}
};
// 一个可能抛出异常的函数
int divide(int a, int b) {
if (b == 0) {
throw MyException("Division by zero is not allowed.");
}
return a / b;
}
int main() {
try {
int result = divide(10, 0); // 这里会抛出异常
std::cout << "Result: " << result << std::endl;
} catch (const MyException& e) {
std::cerr << "Error: " << e.what() << std::endl;
} catch (const std::exception& e) {
std::cerr << "Error: " << e.what() << std::endl;
} catch (...) {
std::cerr << "Unknown error occurred." << std::endl;
}
return 0;
}
在这个示例中,我们定义了一个自定义异常类MyException
,它继承自std::runtime_error
。在divide
函数中,我们检查除数是否为0,如果是,则抛出MyException
异常。在main
函数中,我们使用try-catch
块捕获异常,并在catch
块中处理异常。
注意,当抛出异常时,程序的执行会立即跳转到相应的catch
块。因此,在try
块中,你应该只包含可能抛出异常的代码。在catch
块中,你可以根据需要处理异常,例如记录错误信息、清理资源等。