通过异常响应逻辑上不正确的用户输入是否正确?
这是一个例子:
我们有很多公司,每个公司都有很多员工。每个公司都有一个ID,每个员工都有一个ID。如果用户想要删除特定公司的员工,但他指定的公司不存在,是否可以抛出像 CompanyNotExtistsException 这样的异常?
如果我返回 true 或 false,我无法在 GUI 中回复用户,并显示为什么员工未被删除的消息 - 如果他不存在或公司不存在。
最佳答案
这是软件社区中很多争论的话题。有些人像 @thatidiotguy 一样认为在这种情况下异常(exception)是非常合适的。还有一些像我一样的人认为异常(exception)只应该在实际出现问题的特殊情况下使用;我觉得你的场景是一个可以通过条件轻松解决的替代流程。
但我对此也不信教。如果您走异常(exception)路线,请记住两件事:
- 确保它是 @thatidiotguy 暗示的受检查异常。
- 确保您的异常不会与 Java 提供的现有异常重复以表达相同的内容。例如,如果客户端提供了一个您期望数字的字符串,则不要编写自己的“InvalidFormatException”或其他内容。使用 Java 内置的
IllegalArgumentException
。
希望有帮助。
关于Java异常处理用户输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19575951/