作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的项目中,我正在设置一个错误处理系统,但在我输入代码之前,我设置了一个测试项目以获得构建的基础。我拥有我需要的一切,除了一件事,那就是 error.ToMessage() 函数。问题是,我不知道如何按照我构建函数的方式设置函数,也找不到示例。
这是我的代码:
#include <iostrea>
enum class ErrorCode {
StreamError,
FileError,
CloseError
};
int main() {
try {
throw ErrorCode::StreamError
} catch (ErrorCode err) {
//std::cout << err.ToMessage() << std::endl; //This is how I would like to output the error.
switch (err) {
case ErrorCode::StreamError:
std::cout << "Stream Error"; //This is how it's currently done.
//...
}
}
}
如果可能的话,我该怎么做?
最佳答案
您需要的不仅仅是一个enum
来完成这个。您可以做的是创建您自己的异常类型,它继承自 std::exception
。此类将有一个 ErrorCode
成员(对于您的枚举)以及一个 what()
方法,该方法返回一个 string
(已经存在你在 std::exception
).
关于c++ - 使用枚举处理错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27552936/
我是一名优秀的程序员,十分优秀!