我正在清理我的代码,并通过异常切换到错误处理(因为这将在某些地方显着缩短代码)。
这意味着我需要设计自己的异常类层次结构。
现在它看起来像这样:
namespace error
{
/** Generic error */
class generic : public std::except
{
public:
generic(const std::string& s) : std::except(s) {}
};
/** Namespace for network related errors */
namespace network
{
/** Generic network error */
class generic : public ::error::generic
{
public:
generic(const std::string& s) : ::error::generic(s) {}
};
/** Network timeout */
class timeout : public ::error::network::generic
{
public:
timeout(const std::string& s) : ::error::network::generic(s) {}
};
}
}问题是这看起来不是特别好读。在处理异常类的层次结构时,是否有一些首选的样式?
发布于 2013-03-28 21:22:28
当一个类名没有描述它将要扮演的角色时,这是一个明确的信号,表明这个类不应该存在。您有两个名为generic的类。它们有什么意义呢?
实际上,您只引入了一种异常类型,即timeout。我会简单地重写你给出的内容:
namespace error
{
namespace network
{
class timeout : public std::exception
{
public:
timeout(const std::string& s);
const char* what();
}
}
}https://stackoverflow.com/questions/15682547
复制相似问题