Acho que a codificação deste método ficaria mais interessante se em vez de o método retornar null no caso de um erro, lançar (no caso repassar seria mais interessante) uma exceção. É importante em Java que Vc não utilize o retorno dos métodos para retornar erro para o usuário. Ao meu ver o usuário não deveria verificar se o ResultSet retornado é nulo ou não, ele simplesmente deveria utilizá-lo tal qual o faz na framework JDBC.
Notem que este é só o meu ponto de vista de uma boa prática de programação.
 
Abraços,
 
Luciano Coelho
-----Original Message-----
From: Marcelo Quintella <[EMAIL PROTECTED]>
To: [EMAIL PROTECTED] <[EMAIL PROTECTED]>
Date: Segunda-feira, 11 de Dezembro de 2000 22:07
Subject: RE: [java-list] Erro em compilação

No methodo consulta() voce soh estah retorando um valor se o try block funcionar.
 
Acho que o mais correto seria:
 
public ResultSet consulta(String cmd)
{
  ResultSet rs = null;
  try
  {
   rs = stmt.executeQuery(cmd);
  }
  catch (SQLException erro)
  {
   System.out.println("Falha de SQL: " +
    erro );
  }
  return rs;
}
 
Abracos,
Marcelo Quintella
 
-----Original Message-----
From: José Moreira Pinto Filho [mailto:[EMAIL PROTECTED]]
Sent: Thursday, December 07, 2000 10:10 AM
To: [EMAIL PROTECTED]
Subject: [java-list] Erro em compilação

Olá para todos.
 
Mais uma vez, peço ajuda daqueles mais experientes do que eu.
 
Estou recebendo um erro ao compilar a seguinte classe:
 
 
import java.sql.*;
 
public class BD {
 
 private static Statement stmt;
 
 public BD() {
 
  String url="jdbc:odbc:BDLocadora";
  Connection con;
 
  try {
   System.out.println("Iniciando a conexao com DB...");
   Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
   con = DriverManager.getConnection(url,"admin","");
 
   System.out.println("Banco de dados aberto.");
 
   stmt=con.createStatement();
  }
  catch (ClassNotFoundException cnf ) {
   System.out.println("Houve uma ClassNotFoudException: " +
    cnf);
  }
  catch (SQLException sql) {
   System.out.println("Houve uma SQLException: " +
    sql);
  }
 }
 
 public void fechaBD() {
  try {
   stmt.close();
   System.out.println("Banco de dados fechado.");
  }
  catch (SQLException sql) {
   System.out.println("Houve uma SQLException: " +
    sql);
  }
 }
 

 public void executa(String cmd) {
  try {
   stmt.executeUpdate(cmd);
  }
  catch (SQLException erro) {
   System.out.println("Falha de SQL: " +
    erro );
  }
 }
 

 public ResultSet consulta(String cmd)
 {
  try
  {
   ResultSet rs = stmt.executeQuery(cmd);
   return rs;
  }
  catch (SQLException erro)
  {
   System.out.println("Falha de SQL: " +
    erro );
}
}
 
}
 
O erro retornado é:
 
D:\VisualCafeSE\Projects\locadora\BD.java:55: missing return statement
 {
        ^
1 error
 
Process completed with exit code 1
 
 
Alguém poderia iluminar meu caminho?
 
Obrigado,
 
Moreira

Responder a