2
respostas

Porque a mensagem é pelo construtor?

O professor mostrou que se usa o getmessage(); para exibir as mensagens dentro das exceções. Não deveria ter um comando SET para inserir as mensagens das exceções? Como o construtor sabe que é bem naquele local que a mensagem deve ficar?

2 respostas

Desculpe, mas não entendi.

o getMessage() pega a mensagem de erro capturado de uma exceção:

class Main {
  public static void main(String[] args) {
    try {
      throw new ArithmeticException("deu errado");
    } catch(ArithmeticException e) {
      System.out.println(e.getMessage());

    }
  }

vai printar "deu errado"

A mensagem deve corresponder ao contexto, veja um exemplo em https://repl.it/@chicofig/DuvidaRudy

class Main {
  public static void main(String[] args) {
    try {
      System.out.print("Digite um número: ");
      String valorString = System.console().readLine();
      Integer valor = Integer.parseInt(valorString);
      System.out.println("Valor é: " + ( 20 / valor ) );
      throw new ArithmeticException("Esse erro será informado se tudo deu certo");
    } catch(Exception e) {
      System.out.println("erro: " + e.getMessage());
    }
  }
}
  • Se digitar uma letra, o erro será erro: For input string: "texto digitado"
  • Se digitar zero, o erro será erro: / by zero
  • se digitar um número válido, por exemplo 10, será mostrado mais ou menos isso
    Digite um número: 10
    Valor é: 2
    erro: Esse erro será informado se tudo deu certo

Bom dia Rudy, quando instanciamos um objeto passando alguma informção, nesse objeto, o construtor dele saberá receber essa informação e armazerar nos atributos corretos, por isso chamamos getMessage(), pois sabemos que a String passada vai para uma variável chamada message.