首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过异常处理错误

通过异常处理错误
EN

Stack Overflow用户
提问于 2013-03-28 21:02:38
回答 1查看 322关注 0票数 0

我正在清理我的代码,并通过异常切换到错误处理(因为这将在某些地方显着缩短代码)。

这意味着我需要设计自己的异常类层次结构。

现在它看起来像这样:

代码语言:javascript
复制
  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) {}
      };
    }
  }

问题是这看起来不是特别好读。在处理异常类的层次结构时,是否有一些首选的样式?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-28 21:22:28

当一个类名没有描述它将要扮演的角色时,这是一个明确的信号,表明这个类不应该存在。您有两个名为generic的类。它们有什么意义呢?

实际上,您只引入了一种异常类型,即timeout。我会简单地重写你给出的内容:

代码语言:javascript
复制
namespace error
{
  namespace network
  {
     class timeout : public std::exception 
     {
       public:
         timeout(const std::string& s);
         const char* what();
     }
  }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15682547

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档