我发现一些 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/