Avvolgimento di un'eccezione verificata specifica in domini non controllati del dominio? [duplicare]

1

Lo zio Bob dice nel libro Codice pulito che dovrebbero essere usate le Eccezioni non controllate. Ora JDK ha alcune eccezioni controllate: IOException, IllegalAccessException ecc. Che non possono essere evitate.

Nella mia logica applicativa supponiamo di avere un'eccezione:

public class MyDomainException extends RunntimeException {
    public MyDomainException(Exception e) {
         super(e);
    }
    //etc
}

E un po 'di codice

try {
    outputStream.write(someBytes);
} catch (IOException e) {
    throw new MyDomainException(e);
}

È un buon approccio o queste eccezioni controllate possono essere propagate su ladder e riempire le firme dei metodi?

Modifica: capisco che è stato chiesto e risposto.

È possibile utilizzare MyDomainException anche per la convalida della business logic o questa eccezione dovrebbe essere utilizzata solo per il wrapping e altre eccezioni dovrebbero gestire la business logic?

Modifica: vorrei ancora una risposta a questa domanda.

    
posta m3th0dman 22.03.2013 - 10:10
fonte

2 risposte

3

È un buon stile. Ad esempio, Spring's JdbcTemplate fa lo stesso con le eccezioni JDBC.

Dalla documentazione Spring:

It(JdbcTemplate) also catches JDBC exceptions and translates them to the generic, more informative, exception hierarchy defined in the org.springframework.dao package.

    
risposta data 22.03.2013 - 10:37
fonte
0

Dipende, capisco la filosofia di Uncle's Bob su questo, ma a volte vuoi per catturare CheckedException e gestirlo lì e poi. L'esempio che usi di catching, wrapping e throwing va bene, specialmente in Java 7 che fa un lavoro migliore per mantenere la gerarchia delle eccezioni.

    
risposta data 22.03.2013 - 13:00
fonte