You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot中查询结果为空时是否应抛出EntityNotFoundException?

问题解答

这得看你的业务需求来决定,没有绝对的标准答案:

  • 如果业务逻辑要求「传入的姓名必须对应至少一名员工」,那你就需要判断列表为空时抛出EntityNotFoundException。这样全局异常处理器会捕获这个异常,返回你预设的统一错误响应(比如HTTP 404状态码+自定义错误信息),避免前端收到空列表后还要额外处理异常场景。

    示例代码:

    public List<Employee> findByName(String name) {
        List<Employee> employees = employeeRepo.findByName(name);
        if (employees.isEmpty()) {
            throw new EntityNotFoundException("未找到名为" + name + "的员工");
        }
        return employees;
    }
    
  • 如果业务逻辑允许「没有匹配姓名的员工」这种情况存在,那直接返回空列表即可。前端可以根据空列表展示“暂无数据”之类的提示,这种场景下抛异常反而会增加不必要的错误处理成本。

另外补充一点:EntityNotFoundException原本更多用于单个实体不存在的场景(比如根据ID查询单个员工找不到),但如果你的业务把「无匹配结果的列表」也定义为异常场景,那用它完全没问题,只要全局处理器能正确处理就行。

内容的提问来源于stack exchange,提问作者Jack

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 18:50:30