A partir do JDK 7, o tratamento de exceções foi expandido com três novos recursos: gestão automática de recursos, multi-catch e relançamento mais preciso.
Multi-catch permite capturar várias exceções com a mesma cláusula catch, evitando duplicação de código.
Para usar o multi-catch, especifique uma lista de exceções separadas por | na cláusula catch. Cada parâmetro é implicitamente final.
Exemplo de uso: catch(final ArithmeticException | ArrayIndexOutOfBoundsException e) para capturar ambas as exceções com a mesma cláusula catch.
O programa gera uma ArithmeticException ao tentar dividir por zero e uma ArrayIndexOutOfBoundsException ao acessar um índice fora dos limites do array. Ambas as exceções são capturadas pela mesma cláusula catch.
O recurso de relançamento mais preciso restringe o tipo de exceção que pode ser relançado para:
1 Exceções verificadas lançadas pelo bloco try.
2 Exceções não tratadas por uma cláusula catch anterior.
3 Exceções que sejam subtipo ou supertipo do parâmetro.
O parâmetro no bloco catch deve ser final para usar o relançamento final, o que significa que ele não pode receber um novo valor dentro do bloco catch. Isso pode ser declarado explicitamente, mas não é obrigatório.
Top comments (0)