gpt4 book ai didi

java - 在 DAO 接口(interface)方法中声明或不声明 DataAccessException?

转载 作者:行者123 更新时间:2023-12-02 00:19:02 25 4
gpt4 key购买 nike

我发现一些 Spring/Hibernate 代码对于在 DAO 接口(interface)方法中声明 DataAccessException 具有不同的策略。

有些确实明确声明了它,有些则没有(或只是有时):

public interface FlightDao {

boolean decrementSeat(Long flightId, int quantity);

List<Flight> findFlights(String fromAirportCode, String toAirportCode) throws DataAccessException;

public List<Flight> getFlights();

Flight getFlight(Long id);

Flight getFlight(String flightNumber);

void save(Flight flight);

}

什么被认为是最佳实践?为什么?

更新

摘自 spring tutorial 的第 13.2.2 节,使用@Repository注释实现DAO pojo以确保底层ORM(或JDBC)异常自动转换为DataAccessException(运行时)异常层次结构非常重要。

最佳答案

如您所见here ,这是一个 RuntimeException,因此无论您是否声明它在编程方面都没有区别。当用户实现该方法时,他可以选择在方法签名中忽略此异常。

我能想到将其放入方法签名中的唯一原因是对其进行标记,以便用户知道该方法可能会抛出此异常,从而他可以选择是否捕获并处理它。

关于java - 在 DAO 接口(interface)方法中声明或不声明 DataAccessException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11392498/

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