0

我正在编写一个非常简单的程序,只有一个类。我也想导出我自己的异常,但我不想使用新文件。在一个文件中有多个不完全相关的类是可以的还是不好的编码?

4

2 回答 2

2

对于小型项目来说这没问题,但对于任何更大的项目来说,它很快就会变成维护难题。

在文件和命名空间中对类进行分类有助于组织,更直观地找到您要查找的内容,并且容易跟踪更改(在版本控制中)。

还有依赖问题,这可能是最重要的问题——如果你想在其他地方使用那个异常怎么办?您不能包含实现文件,即使您将其保留为与其他不相关类共享的标头,您也会用不需要的符号污染新的翻译单元。

于 2013-02-16T00:15:06.383 回答
0

我认为答案,就像许多事情一样,取决于情况。在这种情况下,问题将是异常与类的耦合程度。如果你的类被调用FooBarBaz并且你的异常被调用FooBarBazException,那么似乎没有人想在其他地方使用它,我认为将它与类打包是可以的。(实际上,您可能会争辩说它应该是 FooBarBaz 的嵌套类。)

也就是说,当我编写异常时,我会尝试将它们与原因而非特定类联系起来。例如,如果我正在编写一个压缩库并且我支持几种不同的算法,我可能会编写一个DataCorruptionException类来传达对损坏的检测。然后我可以使用异常消息来提供更详细的信息,例如异常来自哪个类/函数。

于 2013-02-16T00:27:02.690 回答