Java:价值处理太高 - 最佳实践?

Java: Too high value handling - best practice?

这既是一个具体问题,也是一个基本问题:

我正在从配置文件中读取一个值,它必须高于某个 X,否则我会赢;无法正确地 运行 我的程序。

如果值低于 X...

  1. 在那种情况下抛出异常是正确的做法吗?
  2. 如果是 - 我应该使用预定义的异常(以及哪个异常)还是应该创建自己的异常 class,我是否应该从其他异常扩展它 class?

谢谢。

1.) 是
2.) 制作你自己的,以你加载的值的含义命名。 您可以简单地扩展 IllegalArgumentException 或 NumberFormatException。

越精确越好 - 使您的代码和应用程​​序的行为更清晰。

如果您所说的值是 central/outstanding 对应用程序意味着我会扩展 NumberFormatException 一个更精确的。如果有比这个值更多的值没有可区分的含义,您也可以简单地使用 NumberFormatException 而不是扩展它。

Is it a correct practice to throw an exception in that case?

抛出异常是一个有效的选择。另一个有效的选择是使用一些合理的默认值,并为用户记录一条警告,解释发生了什么。

选择取决于所配置值的敏感程度。您必须就此做出具体情况的决定。

Should I use a predefined exception (and which one) or should I create my own exception class, and should I extend it from some other exception class?

如果您选择抛出一个有利于默认值的异常,抛出一个派生自 Exception 的自定义异常以使其成为 "checked"。这将确保调用代码中有代码来处理异常。