2012-09-04 11 views
5

Sto passando sopra alcune configurazioni xml esistenti alla configurazione Java per Spring. Durante questo processo, ho riscontrato un codice Java trasferito che genera un controllo Exception.Come dovrei gestire le eccezioni controllate in Spring's JavaConfig?

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

mi chiedevo come avrei dovuto gestire la cosa, e se gli sviluppatori di primavera o no avuto alcun 'migliori pratiche' in mente.

Devo segnare il metodo con una clausola throws (che propagano fino qualsiasi catena @Import) o dovrei gestirlo metodo con un try - blocco catch?

risposta

6

Come regola generale, è sufficiente dichiarare eventuali eccezioni controllate nella clausola throws del metodo @Bean.

Non sono sicuro di cosa si stia riferendo a "propagare una qualsiasi catena @Import"; la clausola throws richiederà ovviamente qualsiasi metodo dipendente @Bean per dichiarare a sua volta una clausola throws contenente tale eccezione, ma quando si tratta di propagazione delle eccezioni effettive al momento del bootstrap del contenitore, l'eccezione verrà gestita dal contenitore Spring nello stesso modo in cui vengono gestite le eccezioni generate dai bean configurate in Spring XML. @Import dovrebbe essere una preoccupazione ortogonale qui.

+0

Direttamente dallo sviluppatore stesso. Grazie, hai risposto abbastanza alla mia domanda. No, non esiste un modo "giusto" per farlo. –

Problemi correlati