Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 将异常创建为内部类是一个好主意吗?C++;_C++_Oop_Exception_Inner Classes_Java - Fatal编程技术网

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

C++ 将异常创建为内部类是一个好主意吗?C++;,c++,oop,exception,inner-classes,java,C++,Oop,Exception,Inner Classes,Java,那么,将异常创建为内部类是一个好主意吗?4.我有种感觉,好像出了什么事,但我不知道到底是怎么回事 例如: class A { ...something... public: class AException : std::exception { ...something... } }; 视情况而定 嵌套类就是嵌套类。这不是,所以内部类没有什么神奇之处 您可以使用“外部类”作为名称空间。如果这提高了可读性,那么有必要说些赞成的话 一个缺点是,现在exception类是该类

那么,将异常创建为内部类是一个好主意吗?4.我有种感觉,好像出了什么事,但我不知道到底是怎么回事

例如:

class A {

  ...something...

public:
  class AException : std::exception {
    ...something...
  }
};
视情况而定

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

您可以使用“外部类”作为名称空间。如果这提高了可读性,那么有必要说些赞成的话

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

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

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

您使用异常的目的是什么?如果需要,您可以使用
exception
A::Exception
非常清楚,而且很可能您希望在
A
的方法中使用什么。也就是说,
A::AException
有点多余,但两者都可以“工作”。