0

假设您有一个控制台应用程序:

Main.javaClassA.java

您的主类包含public static void main(String[] args)您运行程序的方法,它使用用户输入作为参数来调用ClassA.

main在将参数发送给方法之前,您是否将用户输入验证放入方法中ClassA

或者

您是否将用户输入验证放在ClassA将消息转回指示输入成功与否的方法中?还是抛出异常?

即在给定无效输入时Integer.Parse(...)抛出。NumberFormatException

4

1 回答 1

1

您可能希望在 classA 中抛出有意义的异常,并让您的 main 方法决定是否/如何处理这些异常。当您重用 A 类时,新的调用者可能想要做出其他决定。

我推荐 Book CleanCode (Robert C. Martin) 的“ErrorHandling”一章。例如,它说“定义正常流程”、“使用异常而不是返回代码”、“分离您的业务逻辑和错误处理”。

在某些情况下,获得快速反馈很重要……不要等待两个小时才能完成计算并在 90 % 时获得异常。在其他情况下,获得详细的反馈更为重要。另请参阅数据验证:快速失败、早期失败与完整验证

检查是否易于阅读您的代码并理解正常流程。每个函数应该只做一件事/建模一个抽象级别。异常处理是一级 ob 抽象。

于 2017-10-11T22:16:09.910 回答