举一个C++异常的例子,并且自己会catch到
时间: 2024-11-05 15:25:09 浏览: 15
在C++中,异常处理是一种机制,用于在程序执行过程中遇到错误时优雅地恢复流程。下面是一个简单的例子,展示了如何定义一个自定义异常并捕获它:
首先,创建一个继承自`std::exception`的自定义异常类(这里以`MyException`为例)[^1]:
```cpp
class MyException : public std::exception {
public:
explicit MyException(const char* msg) throw() : message(msg) {}
virtual const char* what() const throw() override {
return message.c_str();
}
private:
std::string message;
};
```
然后,在可能引发异常的地方,使用`throw`语句抛出这个异常:
```cpp
void riskyOperation() {
if (/*某个条件不满足*/) {
throw MyException("Risky operation failed!");
}
}
```
接着,在可能的位置捕获这个异常:
```cpp
int main() {
try {
riskyOperation();
} catch (const MyException& e) {
std::cerr << "Caught an exception: " << e.what() << '\n';
// 处理异常,比如记录日志或者清理资源
}
return 0;
}
```
在这个例子中,如果`riskyOperation()`中的条件不满足,就会抛出`MyException`,主函数中的`catch`块会捕获并处理这个异常。这样可以避免程序崩溃,而是通过控制流来应对错误情况。
阅读全文