gpt4 book ai didi

java - 未调用先决条件方法时抛出什么异常?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:45:04 25 4
gpt4 key购买 nike

我有一个方法 getUser 可以从数据库中检索用户。该方法要求您验证用户是否确实存在(通过 userExists(String username) 方法。

如果调用了getUser方法,用户不存在,我想抛出一个unchecked exception,但是这里哪个异常最合适呢?我考虑过 IllegalArgumentException,但感觉并不完全正确,因为某些输入在某些情况下可能没问题,但在其他情况下则不然——它们不是严格意义上的“非法”。有什么建议吗?

最佳答案

对我来说 IllegalArgumentException 意味着参数是非法的并且总是非法的。我将使用的异常是 IllegalStateException,表示检查用户的对象状态无效。

但是您可能有一个足够具体的异常,您可以创建自己的异常。

public class UsernameNotCheckedException extends IllegalStateException {
public UsernameNotCheckedException(String message) {
super(message);
}
}

这可能会使调试更容易。

NumberFormatExceptionIllegalArgumentException 的子类。如果您尝试解析数字 12QW4,它会给您一个 NumberFormatException,您以后无法做任何事情来使它成为一个有效的参数。即它与任何状态无关。

IllegalStateException 状态的 Javadoc。

Signals that a method has been invoked at an illegal or inappropriate time. In other words, the Java environment or Java application is not in an appropriate state for the requested operation.

关于java - 未调用先决条件方法时抛出什么异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6557573/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com