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

Livro

Criei uma classe Livro para treinar o que foi ensinado na aula, segue abaixo os códigos. Uma dúvida, pelo o que eu entendi, isso de criar uma classe sobre a exceção e herdar os atributos e métodos da classe RuntimeException é só mais uma forma de criar uma mensagem de erro personalizada, mas agora com classe?


public class Livro {

    public static void main(String[] args) {
        System.out.println("Nome do livro:");
        nome();
    }

    public static void nome() {
        System.out.println("Em Busca de Nós Mesmos");
        System.out.println("Editora:");
        editora();
    }

    public static void editora() {
        System.out.println("Citadel");
        System.out.println("Autor:");
        try {
            autor();
        } catch (NullPointerException exemplo) {
            String mensagemErro = exemplo.getMessage();
            System.out.println("Exception " + mensagemErro);
            exemplo.printStackTrace();
        }
    }

    public static void autor() {
        Excecao erro = new Excecao("Erro no código");
        throw erro;
        //System.out.println("Clovis de Barros"); não compila
    }
}

public class Excecao extends RuntimeException {

    public Excecao(String mensagemErro) {
        super(mensagemErro);
    }
}

Tudo certo?

2 respostas
solução!

Olá Lucas.

Quando você cria uma classe de exceção estendendo RuntimeException, você está definindo mais do que uma mensagem personalizada de erro. Você está definindo um novo tipo de exceção, que pode ser capturada em um bloco try/catch e ter um fluxo de tratamento especial pra ele.

Entendi. Obrigado pela ajuda.