Tratamento multi-catch de exceções
Capture múltiplos tipos de exceção em um único bloco catch.
Comparação de Código
✕ Pre-Java 7
try {
process();
} catch (IOException e) {
log(e);
} catch (SQLException e) {
log(e);
} catch (ParseException e) {
log(e);
}
✓ Java 7+
try {
process();
} catch (IOException
| SQLException
| ParseException e) {
log(e);
}
Viu um problema com este código? Nos avise.
Por que a forma moderna ganha
DRY
A mesma lógica de tratamento escrita uma vez em vez de três.
Relançável
A exceção capturada pode ser relançada com seu tipo preciso.
Fácil de ler
Todos os tipos tratados ficam visíveis em um único lugar.
Abordagem Antiga
Blocos catch separados
Abordagem Moderna
Multi-catch
Desde o JDK
7
Dificuldade
Iniciante
Suporte JDK
Tratamento multi-catch de exceções
Disponível
Amplamente disponível desde o JDK 7 (julho de 2011)
Como funciona
O multi-catch trata múltiplos tipos de exceção com o mesmo código. A variável de exceção é efetivamente final, então você pode relançá-la sem precisar encapsular.
Documentação Relacionada