我正在将一些现有的xml配置转移到Spring的Java配置。在此过程中,我遇到了一些抛出已检查Exception
。
@Bean
public PoolDataSource myDataSource()
{
final PoolDataSource dataSource = PoolDataSourceFactory.getPoolDataSource();
dataSource.setConnectionPoolName("myDataSourcePoolName"); // throws SQLException
return dataSource;
}
我想知道我应该如何处理它,以及Spring开发人员是否有任何'最佳实践'。
我应该使用throws
子句标记该方法(它会向任何@Import
链传播)还是应该使用try
- catch
块来处理它?
答案 0 :(得分:7)
作为一般规则,您应该在throws
方法的@Bean
子句中声明任何已检查的例外。
我不确定你所说的“宣传任何@Import
链”; throws
子句当然要求任何依赖@Bean
方法依次声明包含该异常的throws
子句,但是当涉及容器引导时的实际异常传播时,异常将由Spring容器处理,就像处理从Spring XML中配置的bean抛出的异常一样。@Import
应该是一个正交的问题。