【问题标题】:Is it a good idea to create Exception as inner class? C++将异常创建为内部类是个好主意吗? C++
【发布时间】:2014-04-14 19:59:03
【问题描述】:

那么将异常创建为内部类是个好主意吗?我有一种感觉,有些不对劲,但我不知道究竟是什么..

例如:

class A {

  ...something...

public:
  class AException : std::exception {
    ...something...
  }
};

【问题讨论】:

  • 你用异常做什么?
  • 如果你愿意,你可以使用Exception。 A::Exception 非常清楚,而且很可能你想在A 的方法中使用什么。 IE。 A::AException 有点多余,但两者都可以“工作”。

标签: c++ oop exception inner-classes


【解决方案1】:

这取决于。

嵌套类就是这样,一个嵌套类。这不是 ,所以 inner 类没有什么神奇之处。

您可以使用“外部类”作为命名空间。如果这提高了可读性,那就有话要说。

一个缺点是现在异常类是该类的公共接口的一部分,而

  • 阻止您在单独的标头中声明异常类
  • 可能会妨碍维护包含类 (ODR rule)

在其他条件相同的情况下,我可能会建议不要嵌套异常类型,因为良好的命名不会超过潜在的缺点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-20
    • 1970-01-01
    • 2016-05-29
    相关资源
    最近更新 更多