7

我正在将一些现有的 xml 配置转移到 Spring 的 Java 配置中。在此过程中,我遇到了一些传输的 Java 代码,它们会抛出一个已检查的Exception.

@Bean
public PoolDataSource myDataSource()
{
    final PoolDataSource dataSource = PoolDataSourceFactory.getPoolDataSource();
    dataSource.setConnectionPoolName("myDataSourcePoolName"); // throws SQLException
    return dataSource;
}

我想知道我应该如何处理它,以及 Spring 开发人员是否有任何“最佳实践”

throws我应该用一个子句标记方法(这将传播到任何@Import链上)还是应该用try-catch块处理它?

4

1 回答 1

8

作为一般规则,您应该在方法的throws子句中简单地声明任何检查的异常@Bean

我不确定您所指的“传播任何@Import链条”是什么;该throws子句当然需要任何相关@Bean方法来依次声明throws包含该异常的子句,但是当涉及到容器引导时的实际异常传播时,Spring 容器将处理异常,其处理方式与抛出异常的方式相同处理 Spring XML 中配置的 bean。@Import在这里应该是一个正交的问题。

于 2012-09-04T18:09:07.830 回答