我应该创建私有静态final String =“一些异常消息”还是留在代码中?

时间:2010-03-16 14:27:55

标签: java exception-handling

我应该创建私有静态final String =“一些异常消息”还是留在代码中?有任何性能问题吗?我有很多例外情况。在任何特定情况下,文本大多不同。警惕性能和内存问题。在未来的recs中,国际化很有可能。

3 个答案:

答案 0 :(得分:6)

从性能的角度来看没有区别。

因此,为了便于阅读,如果您不在其他地方使用相同的字符串,请将其留在代码中。

至于国际化 - 我反对i18n例外的想法,但如果你这样做:

  • 使用消息密钥(来自具有static final消息密钥的类)构造异常。
  • 仅在需要显示异常时解析相应的消息。

答案 1 :(得分:2)

如果您只在一个地方使用它,并且不打算提供国际化,请将其保留为内联。

如果您在多个地方使用它,特别是如果消息成为您的界面的一部分(这样您可以在捕获异常时检查消息,尽管您应该真正使用单独的错误代码或子类),使它成为一个常数(必要时是公共的)。

如果您需要本地化消息,请将其外部化为消息资源文件。

答案 2 :(得分:2)

来自IMO的Bozho和Thilo的答案的例外是当你在多个地方使用异常消息时。如果您要将一条消息移动到静态最终字符串,请对该文件中的所有异常执行此操作以确保一致性。如果在文件顶部找到一条异常消息,则逻辑会建议在那里找到所有这些消息。