1
resposta

Opcional Testando erro - Formação Java - Exceções

Ao executar o código abaixo teremos o error StackOverFlowError, pois o método 2 fica em um looping se chamando diversas vezes até ocupar toda a memória HEAP(memória de objetos). Trata-se de um erro da máquina virtual.

Quando um método chama a si mesmo, chamamos de recursão.

public static void main(String[] args) {
    System.out.println("Ini do main");
    try{
        metodo1();
    } catch(ArithmeticException | NullPointerException ex) {
        String msg = ex.getMessage();
        System.out.println("Exception " + msg);
        ex.printStackTrace();
    } 
    System.out.println("Fim do main");
}

private static void metodo1() {
    System.out.println("Ini do metodo1");
    metodo2();
    System.out.println("Fim do metodo1");
}

private static void metodo2() {
    System.out.println("Ini do metodo 2");
    metodo2();    
    System.out.println("Fim do metodo 2");
}
1 resposta

Isso mesmo Leonardo, de acordo com a sintaxe padrão, o StackOverFlowError corresponde a um erro da máquina virtual. Esse nesse caso sitado na aula é isso que acontece.

Seria essa sua dúvida?