gestion d'erreur

ezo-esm
gestion d'erreur

Bonjour,

je veux dans cette méthode faire une gestion d'erreur c'est a dire si la valeur "v" n'existe pas dans la base qu'il me génère une erreur genre "retapez la valeur ou..."


public static Vector getListevaleur(String v) {
//throw new UnsupportedOperationException("Not yet implemented");

Vector vdata = new Vector();
ResultSet rs = null;
Statement stmt = null;
int ct=0;
try {
Connection conn = BDConnection.connecter();

stmt = (Statement) conn.createStatement();


rs = stmt.executeQuery("select Valeur from Moy1h where dateV='"+v+"' ");


ResultSetMetaData rsmd = rs.getMetaData();
int colonneccount = rsmd.getColumnCount();
Vector vcolonnename = new Vector();

for (int i = 1; i <= colonneccount; i++) {
vcolonnename.addElement(rsmd.getColumnName(i));
}
vdata.addElement(vcolonnename);
Vector vligne;
while (rs.next()) {
vligne = new Vector();
ct++;
for (int i = 1; i <= colonneccount; i++) {
vligne.addElement(rs.getObject(i));


}
vdata.addElement(vligne);
}
}
catch (SQLException e) {

e.printStackTrace();
}




return vdata;
}

N.B= "v" dans la base de données un un texte

merci de me répondre c'est un peu urgent

Niroken

Hello

Voici qui devrait répondre à ta demande :

public static Vector getListevaleur(String v) throws Exception{ 
        //throw new UnsupportedOperationException("Not yet implemented"); 
        Vector vResults = new Vector();
      
        ResultSet rs = null; 
        Statement stmt = null; 
      
        Connection conn = BDConnection.connecter(); 
        stmt = (Statement) conn.createStatement(); 
              
        rs = stmt.executeQuery("select Valeur from Moy1h where dateV='"+v+"' "); 
    
        while (rs.next()) { 
            vResults.addElement(rs.getObject(1));
        }
            
        //Gestion de l'exception
        if (vResults.size() == 0) {
            throw new Exception("Aucun résultat trouvé");
        }
              
        return vResults; 
    } 

J'ai nettoyé un peu ton code et je n'ai pas compris pourquoi tu récupérais le metadata de ton resultSet puisque tu connais a l'avance l'unique colonne sur laquelle tu vas récupérer des enregistrements, ici il s'agit de "Valeur". J'ai donc stocké toutes les valeurs dans le Vector vResults.

Je n'ai pas mis ici la gestion de fermeture de connection, mais il serait bon d'y penser pour libérer les ressources.

Bonne chance,
Niroken