Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
**EmptyCatchBlock
Sur la fonction ConncetionDB()
catch (Exception e){
}
Probleme: il ya une exception mais on a rien fait,Dans la plupart des cas, cela
annule une exception qui devrait être suivie d’effet ou signalée.
Correction: on va signaler l'exception
catch (Exception e){
System.out.println(e);
}
**LogicInversion
Sur la fonction listerLivre()
if(!(rs ==null)){
rs.close();
}
if(!(pst==null)){
pst.close();
}
Probleme:on a nier les expression entriere car l'expression est devenue tres
complexe
Correction: Utilisez l’opérateur opposé au lieu de nier l’expression entière avec
un opérateur de complément logique
if(rs !=null){
rs.close();
}
if(pst!=null){
pst.close();
}
**CheckResultSet
Sur la fonction login()
rs.next();
Utilisateur u = new Utilisateur(
rs.getString("nomCmplet"),
rs.getString("nomUtilisateur"),
rs.getString("motDePasse"),
rs.getString("role")
);
Probleme: on a pas traiter si rs.next() return un false au lieu d'un enregistrement
et cela va provoquer une error
Correction: on va gerer ce cas on verifiant si rs.next() est deffirent de faux
if (rs.next()) {
Utilisateur u = new Utilisateur(
rs.getString("nomCmplet"),
rs.getString("nomUtilisateur"),
rs.getString("motDePasse"),
rs.getString("role")
);
con.close();
return u;
} else {
return null;
}
** AbstractNaming
Dans la class Role
public abstract class Role
Probleme: Les classes abstraites doivent être nommées 'AbstractXXX'.
Correction: il faut renommer la class par AbstractRole
public abstract class AbstractRole
**AvoidReassigningParameters
Dans la methode chercherLivre qui se trouve dans la classe librairie
isbn = "Le livre avec " + isbn;
Probleme: Il n’est pas recommandé de réaffecter des valeurs aux paramètres entrants
d’une méthode car cela peut rendre le code plus difficile à comprendre.
Correction: Ajouter une cariable local dans la fonction et on refectue sur elle la
valeur de isbn avec le traitement necessaire
String msg = "Le livre avec " + isbn;
** DefaultLabelNotLastInSwitchStmt
Dans la methode afficher_livre qui se trouve dans la class Menu
switch (choix){
case 1:
Scanner sc1 = new Scanner(System.in);
System.out.println("Donnez L'ISBN de livre");
String isbn = sc1.nextLine();
librairie.chercherLivre("ISBN",isbn,u.getRole());
break;
default:
Scanner sc3 = new Scanner(System.in);
System.out.println("Donnez l'auteur de livre");
String auteur = sc3.nextLine();
librairie.chercherLivre("Auteur",auteur,u.getRole());
break;
case 2:
Probleme:Default ne se trouve pas dans la derniere etiquette de switch
Correction il faut rendre default la derniere etiquette de switch
switch (choix){
case 1:
Scanner sc1 = new Scanner(System.in);
System.out.println("Donnez L'ISBN de livre");
String isbn = sc1.nextLine();
librairie.chercherLivre("ISBN",isbn,u.getRole());
break;
case 2:
Scanner sc2 = new Scanner(System.in);
System.out.println("Donnez le titre de livre");
String titre = sc2.nextLine();
librairie.chercherLivre("Titre",titre,u.getRole());
break;
default:
Scanner sc3 = new Scanner(System.in);
System.out.println("Donnez l'auteur de livre");
String auteur = sc3.nextLine();
librairie.chercherLivre("Auteur",auteur,u.getRole());
break;
**UncommentedEmptyConstructor
Dans la classe livre sur son constructeur vide livre()
public Livre(){
}
Probleme:Le constructeur vide sans commentaire trouve les cas où un constructeur ne
contient pas d’instructions,
mais il n’y a pas de commentaire. En commentant explicitement les constructeurs
vides, il est plus facile de distinguer
les constructeurs vides commentés et non commentés.
Solusion: on commentons le constructeur vide
public Livre(){
// C'est un constructeur vide
}