Como eu no JDBC ler um valor duplo possivelmente nulo de resultSet?

Eu tenho uma coluna no meu banco de dados que é digitadodouble e quero ler o valor dele usando um JDBC ResultSet, mas pode ser nulo. Qual a melhor maneira para fazer isto? Eu posso pensar em três opções, nenhuma das quais parece muito boa.

Opção 1: Ruim porque a manipulação de exceção verboso e malcheiroso

double d;
try {
   d = rs.getDouble(1);
   // do something
} catch(SQLException ex) {
   if(rs.wasNull()) {
      // do something else
   } else {
     throw ex;
   }
}

Opção 2: Ruim porque duas buscas

s = rs.getString(1); // or getObject()
if(s == null) {
  // do something else
} else {
  double d = rs.getDouble(1);
  // do something
}

Opção 3: Ruim porque o Java, em vez de conversão SQL

s = rs.getString(1); // or getObject()
if(s == null) {
  // do something else
} else {
  double d = Double.parseDouble(s);
  // do something
}

Alguma sugestão sobre qual caminho é melhor, ou existe outra maneira superior? E por favor não diga "Use o Hibernate", estou restrito ao código JDBC somente aqui.

questionAnswers(4)

yourAnswerToTheQuestion