gpt4 book ai didi

java - 服务层: What to return if query argument is null?

转载 作者:行者123 更新时间:2023-12-01 23:56:55 25 4
gpt4 key购买 nike

假设我们有一个服务方法 getById(Long id),它根据 id 返回一个实体。如果 id 为空,正确的操作是什么?

抛出IllegalArgumentException?

抛出NullPointerException? ( Guava Preconditions.checkNotNull 执行此操作)

返回空?

既然不可能存在 id == null 的实体,那么返回 null 似乎也没有那么糟糕?我的意思是,如果 id 不存在,该方法无论如何都会返回 null。

先决条件是很好的一句台词,但在这种情况下抛出 NullPointerException 似乎很极端。

这里的“最佳实践”是什么?

最佳答案

向此类方法传递 null 表示存在错误。没有人会想要找到 ID 为空的实体,因为这样的东西不可能存在。所以这可能意味着 UI 层存在绑定(bind)问题,或者调用者忘记在其表单中添加隐藏的 ID 字段,或者其他什么。

返回 null 会隐藏该错误,或​​者使其更加模糊。抛出异常可以尽早发现错误,并提供清晰的错误消息,从而可以及早修复它,并最终使应用程序更加健壮。

不可为 null 的参数为 null 的约定是抛出 NullPointerException。我就是这么做的。

关于java - 服务层: What to return if query argument is null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15447437/

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