java – 未调用先决条件方法时抛出什么异常?
我有一个方法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状态.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- java – Hyperjaxb:按XML属性排除XML元素
- wait.until(ExpectedConditions)在硒中不再工作
- java – GWT RPC安全性,http头,身份验证和请求构建器
- java – 输入stream.read返回0或-1?
- deep_learning_Function_tf.train.ExponentialMovingAverag
- 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_03
- java – Mockito验证一个方法在间谍之后调用onces虽然它永远
- 基数排序简介及Java语言实现
- java – Google Guice:具有参数的提供程序
- java – 为什么不同的长值转换为相同的日期/时间?