假设我们有一个方法changeUserName(Long id,String newName)
调用存储库findUser(Long id)
来查找正确的用户实体,然后更改其名称。何时返回 null
是否合适?或者我应该抛出一个自定义(extends AppException extends RuntimeException) 吗?IllegalArgmentException
findUser
UserNotExistException
更新:
RuntimeException
:
@nachokk @JunedAhsan 其实我是故意让所有的异常unchecked
,因为我认为这种方式使客户端代码干净,易于调试,更安全。至于那些“未处理”的,我会将它们全部放在图层的顶部,从而避免在 UI 上显示它们。
这是因为许多客户端捕获checked exceptions
然后忽略它,并且在某些情况下他们不知道如何处理它。这是一个隐患。澄清:
对不起我的英语不好。我的意思是如果changeUserName应该抛出一个IllegalArgumentException
,而不是findUser
方法。还有一个问题:如何illegal argument
区分business rule violation
?