我有这样的代码:
dwstate
方法AuthMethod检查用户名或密码是否匹配,否则将抛出AuthFailedException。
应该将其设置为检查异常( AuthFailedException扩展异常)还是将其取消选中( AuthFailedException扩展RuntimeException )?
我不知道此代码的客户端是否要在发生异常的情况下恢复代码。
答案 0 :(得分:1)
从Java documentation on exceptions
这是最重要的原则:如果可以合理地期望客户端从异常中恢复,请将其设置为已检查的异常。如果客户端无法采取任何措施来从异常中恢复,请将其设置为未经检查的异常。
在身份验证失败的情况下,可以合理地预期客户端将采取某些特定的操作,例如提示重新输入凭据-因此,这应该是经过检查的异常。