写一个异常类MyException,继承自标准库中的exception基类
时间: 2024-02-09 09:10:16 浏览: 81
下面是一个继承自 exception 基类的 MyException 异常类的示例代码:
```c++
#include <exception>
#include <string>
class MyException : public std::exception {
public:
MyException(const std::string& message) : m_message(message) {}
virtual const char* what() const noexcept {
return m_message.c_str();
}
private:
std::string m_message;
};
```
这个类定义了一个构造函数,它接受一个字符串参数 message,用于描述异常的信息。在构造函数中,我们将 message 存储到类的私有成员变量 m_message 中。
类中还重载了 exception 基类中的 what() 函数,它用于返回异常描述信息的 C 字符串。在这里,我们直接返回 m_message.c_str()。
这个类可以用于抛出自定义异常,比如:
```c++
try {
// some code that may throw an exception
throw MyException("Something went wrong");
}
catch (const MyException& e) {
std::cerr << "Caught MyException: " << e.what() << std::endl;
}
catch (const std::exception& e) {
std::cerr << "Caught standard exception: " << e.what() << std::endl;
}
catch (...) {
std::cerr << "Caught unknown exception" << std::endl;
}
```
在这个示例中,我们在 try 块中抛出了一个 MyException 异常,并在 catch 块中捕获了它。如果程序中还有其他异常被抛出,我们也可以在 catch 块中捕获它们。
阅读全文