Erro NullPointerException

Bom dia galera,

Estou precisando de uma ajuda referente a tratativa do erro de NullPoiterException, pois estou desenvolvendo um sistema utilizando WebService, sendo comunicação atravez de uma String contendo o XML.

O problema e que, existe diversas tags no XML de retorno, porem tem itens que nao sao obrigatorios, e automaticamente nao tera a tag, ou seja, se estou querendo pegar os dados de uma tag que nao existe vai acontecer o erro de NullPointerException…

Eu efetuei a tratativa do erro utilizando o bloco try e catch, porem acredito que esta nao é a melhor saida, pois o codigo fica poluido, sendo assim, alguem saberia informar como posso verificar se existe esta tag, evitando o erro NullPointerException sem utilizar o bloco try e catch ?

Agradeço desde ja.

Elton C.

Por que é que você não checa se é null o resultado? Criar variáveis temporárias, e checar o retorno contra null, não machuca…

Na minha experiência, tratar “NullPointerException” é sinal de que você não está fazendo as coisas direito.

obrigado pelo retorno thingol, o problema e que ja efetuei esse processo, segue abaixo o codigo para que possa entender melhor:
tipo tentei fazer o seguinte… porem acontece o Erro de NullPointerExcpetion…

esse e o metodo que preciso verificar realmente…

public ArrayList<PedidoConsultaLote> getRetornoConsultaLote(String xmlResponse) {
        ArrayList<PedidoConsultaLote> listaPedidoConsultaLote = new ArrayList<PedidoConsultaLote>();
        try {
            DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
            DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder();
            ByteArrayInputStream is = new ByteArrayInputStream(xmlResponse.getBytes());
            Document doc = docBuilder.parse(is);

            // normalize text representation
            doc.getDocumentElement().normalize();
            
            NodeList listNfeTags = doc.getElementsByTagName("ChaveNFe");
            NodeList listChaveRPSTags = doc.getElementsByTagName("ChaveRPS");
            NodeList listCPFCNPJPrestadorTags = doc.getElementsByTagName("CPFCNPJPrestador");
            NodeList listEnderecoPrestadorTags = doc.getElementsByTagName("EnderecoPrestador");
            NodeList listCPFCNPJTomadorTags = doc.getElementsByTagName("CPFCNPJTomador");
            NodeList listEnderecoTomadorTags = doc.getElementsByTagName("EnderecoTomador");

[quote=elton_csantana]obrigado pelo retorno thingol, o problema e que ja efetuei esse processo, segue abaixo o codigo para que possa entender melhor:
tipo tentei fazer o seguinte… porem acontece o Erro de NullPointerExcpetion…
// Exemplo
if (!doc.getElementsByTagName(“ChaveNFe”)==null) {
System.out.println(“nulo”);
}
else{
NodeList listNfeTags = doc.getElementsByTagName(“ChaveNFe”);
}

[/quote]

Em vez disso:

....
if (doc != null) {
    NodeList listNfeTags = doc.getElementsByTagname ("ChaveNFe");
    ....
    if (listNfeTags != null) {
        ....
    }
}

Já pensou que você pode estar (por algum problema do tipo “XML Mal Formado”) estar recebendo o valor de “doc” como nulo?

entao e dificil o problema com o XML de retorno, pois o retorno e feito pelo server da prefeitura…

mas pela resposta, vou tentar fazer as alterações, de acordo com as dicas acima…

obrigado mais uma vez pela ajuda…

Ae galera problema resolvido, conforme a dica do amigo acima…