Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Pessoal, alguem poderiame ajudar, esse topico estabem confuso pra mim...

Nao entendi o codigo abaixo:

Porque a condiçao CATCH nao sera chamada?

public class Principal {

public static void main(String[] args) {

    String nome = "Alura";
    System.out.println("ANTES");

    try {
        System.out.println(nome);
    } catch(ArrayIndexOutOfBoundsException ex) {
        System.out.println("CATCH");
    }

    System.out.println("DEPOIS");
}

}

2 respostas
solução!

Olá Everson, tudo bem? O bloco "Catch" só ocorre quando há algum problema no bloco "Try", como a instrução dentro do bloco try não está dando erro, o bloco catch é ignorado, se você colocar dentro do bloco try alguma condição como;

try {
            System.out.println(1/0);
        } catch (ArithmeticException ex) {
            System.out.println("CATCH");
        }

o sistema irá executar o que estiver dentro do bloco catch. Note que eu troquei o erro dentro dos parenteses, O erro "ArrayIndexOutOfBoundsException" acontece quando você tenta acessar um array através de um index que não existe, por isso mesmo que haja algum erro dentro do bloco try, se o erro ocorrido for diferente do que foi declarado dentro do catch, ele não executará.

Obrigado Bruno,

Grande help mesmo! Abraço