Múltiplas instruções catch:
- Um bloco try pode ser associado a várias instruções catch para capturar diferentes tipos de exceções.
- Cada catch trata uma exceção específica.
Exemplo com tratamento de diferentes exceções:
O programa a seguir captura dois tipos de exceções:
ArithmeticException (divisão por zero).
ArrayIndexOutOfBoundsException (acesso fora dos limites do array).
Exemplo de código:
class ExcDemo4 {
public static void main(String args[]) {
// O array numer é maior que denom.
int numer[] = { 4, 8, 16, 32, 64, 128, 256, 512 };
int denom[] = { 2, 0, 4, 4, 0, 8 };
for (int i = 0; i < numer.length; i++) {
try {
// Tenta realizar a divisão
System.out.println(numer[i] + " / " + denom[i] + " is " + numer[i] / denom[i]);
} catch (ArithmeticException exc) {
// Captura e trata a exceção de divisão por zero
System.out.println("Can't divide by Zero!");
} catch (ArrayIndexOutOfBoundsException exc) {
// Captura e trata a exceção de acesso fora dos limites do array
System.out.println("No matching element found.");
}
}
}
}
Saída do programa:
- O programa exibe os resultados das divisões corretas.
- Quando uma divisão por zero ocorre, ela é tratada.
- Quando o índice de denom não existe, a exceção de limite de array é tratada.
Exemplo de saída:
4 / 2 is 2
Can't divide by Zero!
16 / 4 is 4
32 / 4 is 8
Can't divide by Zero!
128 / 8 is 16
No matching element found.
No matching element found.
Execução dos blocos catch:
Cada catch é verificado na ordem em que ocorre no código.
Somente o catch correspondente ao tipo de exceção encontrada será executado, enquanto os demais serão ignorados.
Vantagem do uso de múltiplos catch:
- Permite tratar diferentes tipos de exceções de forma específica, tornando o código mais robusto.
Conclusão:
- Usar várias instruções catch possibilita a captura de diferentes tipos de exceções, lidando com elas de maneira apropriada e permitindo que o programa continue executando, mesmo quando erros ocorrem.
Top comments (0)