加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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

发布时间:2020-12-14 23:43:20 所属栏目:Java 来源:网络整理
导读:我有一个方法getUser,它从数据库中检索用户.该方法要求您验证用户是否确实存在(通过userExists(String username)方法. 如果调用了getUser方法并且用户不存在,我想抛出一个未经检查的异常,但是哪个异常最合适呢?我想到了IllegalArgumentException,但它感觉不
我有一个方法getUser,它从数据库中检索用户.该方法要求您验证用户是否确实存在(通过userExists(String username)方法.

如果调用了getUser方法并且用户不存在,我想抛出一个未经检查的异常,但是哪个异常最合适呢?我想到了IllegalArgumentException,但它感觉不完全正确,因为在某些情况下某些输入可能没问题,但在其他情况下则不然 – 它们并非严格“非法”.有什么建议?

解决方法

对我来说IllegalArgumentException意味着该论点是非法的,并且总是非法的.我将使用的异常是IllegalStateException来说明检查用户无效的对象的状态.

但是,您可能有一个特定的例外,您可以创建自己的例外.

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

这可以使调试更容易.

NumberFormatException是IllegalArgumentException的子类.如果您尝试解析数字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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读