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

Is it a good idea to create Exception as inner class? C++

本文关键字:好主意 C++ Exception 创建 内部类      更新时间:2023-10-16

那么创建Exception作为内部类是个好主意吗?我有一种不对劲的感觉,但我不知道到底是什么。。

例如:

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

这取决于情况。

嵌套类就是嵌套类。这不是java,所以内部类没有什么神奇之处。

您可以使用"外部类"作为名称空间。如果这提高了可读性,那么有一些东西可以支持它

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

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

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