将Exception创建为内部类是一个好主意吗? C ++

时间:2014-04-14 19:59:03

标签: c++ oop exception inner-classes

创建Exception作为内部类是一个好主意吗?我觉得有些不对劲,但我不知道究竟是什么......

例如:

class A {

  ...something...

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

1 个答案:

答案 0 :(得分:4)

这取决于。

嵌套类只是一个嵌套类。这不是,因此内部类没什么神奇之处。

你可以使用"外类"作为命名空间。如果这样可以提高可读性,那么就可以说有利于它了。

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

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

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