【问题标题】:Do Java exceptions deserve their own file?Java 异常是否值得拥有自己的文件?
【发布时间】:2010-10-09 01:11:38
【问题描述】:

每当我定义一个新异常时,我倾向于做以下两件事之一:

  1. 创建一个例外文件,其中包含我的项目中定义的所有新例外的列表。
  2. 将每个定义的异常与引发它的类放在同一个文件中。

Netbeans 不喜欢当我在与另一个类(例如第 2 点)相同的文件中定义公共异常时。虽然我还没有尝试过,但我相信它会因为类似的事情对我大喊大叫与第 1 点相同的文件中存在多个异常的原因。

每个异常真的应该有自己的文件吗,还是 Netbeans 会接受其他样式?我对 Java 和 Netbeans 还很陌生,很想知道合适的风格是什么。

【问题讨论】:

  • 抱怨的不是 Netbeans,而是 javac。您可能会将异常设为 inner 类,这会使编译器满意,但实例化会更加麻烦。
  • 为什么不在记录器中记录异常?

标签: java exception netbeans coding-style


【解决方案1】:

我将异常放在他们自己的文件中。为什么不呢?

一个文件中不能有多个公共类。如果您试图以某种效率的名义将公共异常放入另一个公共类中,我建议您返回并重新阅读 Java 规范。

【讨论】:

  • "这似乎是太多的小文件无法跟踪。"这就是为什么您使用 Netbeans 而不是 vi 进行 Java 开发的原因。
  • @Shynthriir,欢迎来到 Java。 ;) 但你会习惯的。当类是粒度单元时,使用好的 IDE 可以更快地查找和导航。
  • 我敢打赌,我已经 3 年没有创建过 3 个 java 异常类了。正是我需要的,一个自定义异常告诉我我搞砸了!
  • Jaysus,你创建了多少个异常类?如果你有多个,你可能做错了。
  • Bloch Item 60... 支持使用标准异常。您需要构成前所未见的异常的情况可能非常有限。
【解决方案2】:

例外是一个类,需要与所有其他类相同的处理方式。

因此,如果您需要公开异常(如果您想在单个类之外实际使用它,这有点必要),您必须将它放在自己的文件中。就像任何其他班级一样。

没有魔法,这只是 Java 的设计。

您会越来越喜欢 Java 做出了一些非常强大的设计选择这一事实。从长远来看,它会让您的生活更轻松。

【讨论】:

    【解决方案3】:

    将异常划分为单独的类(而不是内部类)是一种很好的做法。这使它们对重用更加友好,因此 A 类不使用嵌套在 B 类中的类。随着您的类库变得越来越大,您会发现不必寻找对开发更友好的内部类。

    因此,最佳实践是每个文件只有一个类,文件名代表类名。

    话虽如此,我倾向于将异常设置为抛出异常的类的内部类,除非它们足够通用以供其他类使用。通常是因为开发时间线以及我知道异常类足够专业而不能在其他地方使用的事实。当截止日期合理时,我正在慢慢将它们放入单独的文件中作为一种做法,因为访问内部类更加乏味。

    【讨论】:

      猜你喜欢
      • 2010-10-11
      • 2023-03-27
      • 1970-01-01
      • 2012-03-11
      • 1970-01-01
      • 1970-01-01
      • 2019-07-07
      • 2011-02-16
      • 1970-01-01
      相关资源
      最近更新 更多