Verificar se é NullPointerException

4 respostas
P_ulo_Jos
olá

no java tem como eu verificar dentro de uma condição if ()

se um certo dado vindo do meu banco de dados

retornar NullPointerException

algo parecido com if (con.rs.getString(data_nasc).equals(NullPointerException)) {} ( tentei assim e não funcionou)

assim seria mais fácil tratar o erro…

grato

4 Respostas

jcranky

Para capturar exceções você tem que usar try / catch:

try {
  // código que pode gerar exception
} catch (NullPointerException e) {
  // tratamento da exceção
}

Mas no caso, o que parece é que você quer saber se o valor é null, não se foi gerada uma exceção.

if (con.rs.getString("data_nasc") == null)
N
<blockquote><div class="quote-author">PabloJ:</div>olá

no java tem como eu verificar dentro de uma condição if ()

se um certo dado vindo do meu banco de dados

retornar NullPointerException

algo parecido com if (con.rs.getString(“data_nasc”).equals(NullPointerException)) {} (já tentei assim e não funcionou)

assim seria mais fácil tratar o erro…

grato

if(con.rs.getString("data_nasc") == null) {
}

No Guava as classes Strings e Optional tem métodos para trabalhar com null, muito mais eficaz do que fazer um if

E

O correto, se um determinado campo do banco de dados for SQL NULL, é o seguinte:

a) Para campos numéricos, depende um pouco de que get você está usando.
getInt, getDouble, getLong, getFloat, getByte, getBoolean - o valor retornado é zero (ou false no caso de getBoolean) e você precisa checar com wasNull.
Exemplo:

Integer val = rs.getInt ("campo");
if (val == 0 && rs.wasNull())
    val = null;

getBigDecimal - o valor retornado é null.

b) Para campos varchar, date, timestamp etc. - o valor retornado é null. Basta comparar com null.

E

De modo geral, seu Pablo:

Se você está capturando um NullPointerException, provavelmente está cometendo um erro bem primário dentro do seu programa.

Não capture os NullPointerException, mas sempre corrija a causa deles.

Às vezes é algo tão básico quanto esquecer de comparar com null.

Criado 10 de julho de 2013
Ultima resposta 11 de jul. de 2013
Respostas 4
Participantes 4