Java:价值处理过高 - 最佳实践?
问题描述:
这既是一个特定的问题,也是一个基本问题:Java:价值处理过高 - 最佳实践?
我正在从配置文件中读取值,它必须高于某个X或者我赢了;否则能够正确运行我的程序。
如果该值低于x ...
- 它是一个正确的做法扔在这种情况下独善其身?
- 如果是 - 我应该使用预定义的异常(以及哪一个)或者我应该创建自己的异常类,并且是否应该从其他异常类扩展它?
谢谢。
答
在这种情况下抛出异常是否正确?
抛出异常是一个有效的选择。另一个有效的选择是使用一些合理的默认值,并记录用户解释发生了什么的警告。
选择取决于配置值的敏感程度。你必须对此做出个案决定。
我应该使用预定义的异常(以及哪一个)或者我应该创建自己的异常类,并且应该从其他异常类扩展它吗?
如果您选择抛出,取而代之的是默认值的异常,抛出从Exception
派生自定义异常,以使其“检查”。这将确保有代码处理调用代码中的异常。
答
1.)是
2.)制作你自己的一个,以你的加载的值的含义命名。 您可以简单地扩展IllegalArgumentException或NumberFormatException。
您越精确越好 - 使您的应用程序的代码和行为更清晰。
如果您正在谈论的值对于应用程序来说具有中心/突出的意义,那么我会用更精确的方式扩展NumberFormatException。如果有更多的值比这个没有明显含义的值还可以简单地使用NumberFormatException而不是扩展它。
1.只有当它对程序的其余部分至关重要,否则不是(仍然通知用户可能)2.取决于它的重要程度以及是否已经存在一个会导致错误的异常(在你的情况下,我不会'认为除了'RuntimeException'外只有一个应该被使用的错误是非常重要的) – XtremeBaumer
读取输入,'if(input> x)抛出新异常(“输入大于x”);'?像这样? –
这是一个完全取决于您的具体情况的设计决定。作为设计师,您需要确定这种错误有多严重,以及是否有任何好的方法可以从中恢复。 –