gpt4 book ai didi

java - jdbc 查询抛出异常

转载 作者:行者123 更新时间:2023-12-01 17:51:20 24 4
gpt4 key购买 nike

我有以下存储库方法:

@Override
public List<Item> getItemsByName(String name) {
String sql = "SELECT * FROM ITEMS WHERE NAME = :name";
Map<String, Object> params = new HashMap<>();
params.put("name", name);
return jdbcTemplate.query(sql, params, new ItemMapper());
}

现在,当用户传递不存在的项目名称时,我想抛出 ItemsNotFoundException。我该怎么做呢?当 query() 方法返回空列表或为 null 时,我应该抛出异常吗:

List<Item> items = jdbcTemplate.query(sql, params, new ItemMapper());
if (items == null || items.isEmpty()) {
throw new ItemsNotFoundException();
}
return items;

或者当我得到 DataAccessException 时我应该抛出这个异常:

try {
return jdbcTemplate.query(sql, params, new ItemMapper());
} catch (DataAccessException e) {
throw new ItemNotFoundException();
}

最佳答案

传入不存在的名称不会导致 DataAccessException,因此不起作用。查询的空结果没有什么异常。

但是如果结果为空,为什么要抛出异常呢?这对您来说是一个异常(exception)情况吗(即,这是一个错误,有人会搜索不存在的名称)?如果是这样,那么这是一个有效的方法。一般来说,空列表可能会更好。

关于java - jdbc 查询抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49805032/

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