|
www.flickr.com
Esse é um módulo do Flickr que mostra fotos e vÃÂdeos públicos de Rafael Carneiro. Faça seu próprio módulo aqui.
|
July 10, 2007
Continuando a série de posts sobre NullPointerException e as primeiras impressões do eclipse europa, hoje estava vendo as novas funcionalidades e um amigo do trabalho me alertou sobre uma nova configuração de Errors/Warnings nas preferências do eclipse.
No eclipse europa, foi adicionado um novo item nas configurações do compilador e agora você pode verificar possÃveis erros em tempo de compilação. No menu, vá em Window – Preferences e marque a opção Potential null pointer access como Error.
Veja na imagem abaixo:
Crie uma classe de teste e adicione o método abaixo ou crie um se preferir.
Código:
Com essa opção marcada como Error, o compilador irá gerar um erro informando que a variável situacao poderá lançar um erro de NullPointerException. O compilador entende que esse if pode retornar false e a referência situacao não será instanciada e poderá ocorrer um erro de NullPointerException na chamada do método add da interface List.
June 27, 2007
Recentemente no trabalho fui chamado por um Analista para tirar uma dúvida no seu código. Adivinha qual era o erro? Claro que o erro era de NullPointerException, mais conhecido como “erro do programador”. O Phillip Calçado escreveu um excelente artigo, chamado Contratos Nulos, onde ele explica claramente e absurdamente bem como evitar esse erro, utilizando boas práticas de programação.
Mas a questão é, por que os programadores não evitam esse tipo de erro?
Um exemplo bem comum desse erro:
Método algumaCoisa
Método main
Se por algum motivo o método algumaCoisa receber por parâmetro um objeto String que aponta para null, esse método irá lançar uma NullPointerException. O erro se dá por conta do objeto param chamar o método equals sem ter uma referência.
Então, para evitar esse erro faça:
Método algumaCoisa

Com certeza deve existir outras formas de evitar vários erros de NullPointerException, mas a principal falha é dos programadores, por não “visualizarem” esses erros nos seus códigos.




