DEV Community

Usando várias instruções catch

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.");
            }
        }
    }
}

Enter fullscreen mode Exit fullscreen mode

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.

Enter fullscreen mode Exit fullscreen mode

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)