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

link ArithmeticException

Pode ser uma pergunta boba mas porque quando executado o código, o "ArithmeticException" fica como link no console?

public static void main(String[] args) {
        System.out.println("Ini do main");
        try {
            metodo1();
        } catch (ArithmeticException ex){
            String msg = ex.getMessage();
            System.out.println("ArithmeticException"); // -> nessa parte!!
        }
        System.out.println("Fim do main");
    }

Não era para ser um texto simples, já que esta entre aspas? E é transformado em link qualquer palavra junto com "Exception". Exemplo: "sapatoException".

public class Fluxo {

    public static void main(String[] args) {
        System.out.println("Ini do main");
        try {
            metodo1();
        } catch (ArithmeticException ex){
            String msg = ex.getMessage();
            System.out.println("sapatoException"); // --> nessa parte!!
        }
        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 metodo2");
        for(int i = 1; i <= 5; i++) {
            System.out.println(i);     
                int a = 3 / 0;     
        }
        System.out.println("Fim do metodo2");
    }

Lógico que se clicar no link "sapatoException" mostra uma mensagem de erro, não leva a lugar nenhum. Agora em ArithmeticException nos leva para outra janela "Java Exception Breakpoint".

Isso só acontece com exceções?

2 respostas
solução!

Fala, Sergio! Tudo bem contigo?

Desculpe a demora em dar um retorno!

O que ocorre é que a Exception gerada traz esse link mostrando a Classe na qual ela pertence, pois cada exception é uma Classe que herda de outra Classe, por exemplo: quando é gerado ArithmeticException, através dela vemos que ela herda da Classe RuntimeException, que por sua vez herda da Classe Exception e por fim, herda de Throwable.

Quando você está lançando a String sapatoException (rs) nada mais é do que um texto realmente. Posteriormente vemos que o professor Nico guarda um getMessage dentro de uma variável e concatena com a String logo abaixo.

Imgur

Resumindo: o link gerado vem, puramente da Exception e não da String expressada no System.out.println

A Caelum possui uma apostila que aborda Exceptions e acredito que vá esclarecer ainda mais sobre essa questão.

No site da Oracle temos uma postagem sobre erros que desenvolvedores Java cometem quando usam Exceptions. Vale muito a leitura!

Espero ter contribuído, Sergio!

Um abraço e bons estudos!!!

Contribuiu sim Cássio! muito obrigado.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software