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

Duvida sobre throw

Sobre o seguinte código abaixo.

public Aluno(String nome, int numeroMatricula) {
    if (nome == null) {
        throw new NullPointerException("Nome não pode ser nulo");
    }
    this.nome = nome;
    this.numeroMatricula = numeroMatricula;
}

Ao meu ver não seria mais simples se fosse escrito desta forma?

public Aluno(String nome, int numeroMatricula) throws NullPointerException {        
        this.nome = nome;
        this.numeroMatricula = numeroMatricula;
    }

Qual a diferença de resultado se os dois códigos compilam, além de imprimir a frase na tela: "Nome não pode ser nulo".

Obrigado.

2 respostas
solução!

Boa tarde, Rafael! Como vai?

Quando se faz throws NullPointerException o objetivo é dizer que determinado método pode lançar determinada exceção que nesse caso seria a NullPointerException. Já, quando é feito throw new NullPointerException("Nome não pode ser nulo") o que está sendo feito é o lançamento efetivo da exceção!

Em outras palavras, o throws apenas avisa sobre uma possível exceção. Enquanto o throw efetivamente lança/cria a exceção!

Pegou a ideia? Qualquer coisa é só falar!

Grande abraço e bons estudos, meu aluno!

Excelente, solucionado!

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