Iai galera, blza?
estava lendo alguns livros de refactor e alguns artigos citados aqui no guj e fiquei com uma dúvida.
Gostaria de saber qual a melhor maneira de projetar minhas exceptions...
imagine o seguinte método.
public static String formatarNome(Pessoa p1) {
if (p1 == null) {
throw new IllegalArgumentException("Pessoa não pode ser null");
}
String nomeCompleto = "";
nomeCompleto = p1.getNome() + p1.getApelido();
return nomeCompleto;
}
Esse método é só um exemplo mesmo hem.. afff.
Minha dúvida é, levantar um IllegalArgumentException? talvez não seria melhor um NPE ?
Concordo que é argumento inválido, logo o IllegalArgumentException serveria nesse caso.
Mas o que o método levantaria seria um NPE se não estivesse tratado o argumento, a vantagem de nós levantarmos o NPE é que podemos passar argumento para o construtor dele e a pilha fica mais facil de rastrear (a pilha começa o rastro lugar certo).
talvez o IllegalArgumentException deveria ser enviado para um tipo de caso como: faixa de valores fora do esperado etc...
o que vocês acham????
Outra coisa, li em um artigo que a galera aqui do fórum sempre indica e tem exemplos de métodos para levantar exceptions:
public static void naoPodeSerNull() {
throw new IllegalArgumentException("Pessoa não pode ser null");
}
e criar alguns métodos sobrecarrendo o construtor passando mensagens, nomes de campos etc...
o que vocês gostam de fazer em métodos para livar valores null?
em breve, vou abrir um de exception em DAO.....
valeu.