0
我正在清理我的代码并通过异常切换到错误处理(因为这会在某些地方显着缩短代码)。通过例外来处理错误
这意味着我需要设计自己的异常类层次结构。
现在它看起来是这样的:
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) {}
};
}
}
的问题是,这个看起来并不特别可读。处理异常类的层次结构时是否有一些首选样式?
这看起来很好。如果我是你,我只是简单地删除':: error'和':: error :: network',因为在这些情况下它们不是必需的(如果我不误读某些东西) –
我同意@ KirilKirov说过,但我也没有看到“泛型”类的很多理由。 –
你可能的意思是'std :: exception',而不是'except',并且它有一些你需要实现的纯虚拟成员函数。确保您的异常对象符合它需要的异常保证(特别是,复制应该不会**抛出异常。具有'通用'错误和'通用'网络异常似乎有点关闭... –