1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Tratamento de Exceção em Java

Bom dia pessoal, estou com dificudades para entender exceções. Recentemente fiz uma prova e caiu a seguinte questão:

public class Exception {

    private String menssage;

    public Exception() {
        this.menssage = "Exceção Genérica";
    }

    public Exception(String menssage) {
        this.menssage = menssage;
    }

    public String getMenssage() {
        return this.menssage;
    }

}

public class DesconhecidaException extends Exception {

    @Override


    public String getMenssage() {
        return "Exceção desconhecida...";
    }

}

public class SemRazaoException extends DesconhecidaException {

    @Override


    public String getMenssage() {
        return "Sem razão nehuma para acontecer exceção!";
    }

}

public class SemComentarioException extends DesconhecidaException {

    @Override

    public String getMenssage() {
        return "Sem comentário.";
    }

}


//Baseado nestas informações, o que o seguinte código deve imprimir, se o método fazerAlgo()
    //lançar uma SemRazaoException() ?
    public static void main(String[] args) {

        Exception ex = new Exception();


        try {
            //considere que este método está imprementado
            fazerAlgo();
            System.out.println("Sucesso!");
        }catch (SemComentarioException e) {
            System.out.println(e.getMenssage());
        }catch (DesconhecidaException e) {
            System.out.println(e.getMenssage());
        }catch (Exception e) {
            System.out.println(e.getMenssage());
        }finally {
            System.out.println("Finalizado");
        }
        System.out.println("Continuando...");
    }

Não consegui entender e nem fazer o código rodar, se alguém puder ajudar? Sou iniciante na programação e estou tentando entender esse exercício mas está difícil. Desde já meus sinceros agradecimentos.

  • isso tem cara de ser pseudocodigo. Exception deveria extender Throwable para funcionar. o que acontece é que vc não tem um catch para SemRazaoException, porem vc tem um para DesconhecidaException ( que é superclasse da SemRazaoException). este exercicio serve pra vc entender a ordem na qual sera impressa as coisas. faça um try/catch/finally e dentro faça algo como 'throw new RuntimeException' e veja a ordem de resolução.

    peczenyj   02 de out de 2014
  • @peczenyj, Throwable é uma interface implementada por Exception.

    wellington.nogueira   02 de out de 2014
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

2 respostas

Não é a resposta que estava procurando? Procure outras perguntas com as tags java ou faça a sua própria pergunta.