Déboguer une application Java ?




Concevoir une application en Java n’est pas une tache évidente et on peut rapidement se retrouver ensevelis sous les erreurs. C’est pour cela que nous allons aborder ici comment  débugger une application et plus précisément une application en Java.

- Eh ! J'sais pas de quoi tu parles mais j’en ai pas b’soin, je suis un expert en Hello world !
- Eh bien.. eh bien..


Reprenons, tout d’abord que signifie Déboguer (ou debugger) ?

Déboguer est le principe de retirer les fautes et les erreurs d’un programme de façon à ce qu'il réalise la tâche attendue, ou bien de détecter les lignes de code comportant des erreurs.

Vérifier son code

Savoir ce qu’est le débogage c’est bien mais avant d’entrer dans le vif du sujet, il y a plusieurs points à vérifier.
Voici les différents points :
 - Avoir les idées claires ou faires des pauses.
- Vérifier que l’on est bien entrain de programmer en Java.
- Vérifier que l’on a bien mit ou fermé les différents signes tel que le point-virgule ou les parenthèses par exemple.
- Faire attention aux espaces.
- Avoir une indentation claire et correcte.
- Si j’utilise une fonctionnalité que je n’ai pas conçu, je me suis renseigné sur son fonctionnement.
- Faire attention à la casse* des noms
- Vérifier la portée utilisée.

Très souvent ses différents points sont les premières sources d’erreur.

Comment déboguer ?

Rentrons dans le vif du sujet. Ici le logiciel utilisé sera IntelliJ.




Voici un code avec une erreur basique que je décide de lancer pour l’exemple. Ce qu’il faut faire attention dans un premier temps c’est aux informations que l’on obtient dans la console.


Assez souvent les erreurs sont explicites. Cependant deux problèmes peuvent se présenter, le premier étant le fait que l’erreur ne soit pas ou peu compréhensible et le second, que le code n’indique pas d’erreur mais pour autant ne fonctionne pas comme attendu.



Ce code qui parait à première vue fonctionnel pose soucis. Nous allons donc utiliser la fonctionnalité Débogueur du programme. Dans un premier temps on place un point d’arrêt.



Le point d’arrêt est l’endroit où l’exécution du programme en mode débogueur s’arrêtera.
Ensuite appuyer sur le petit insecte ( bug )


Cela lancera votre programme en mod débug et c’est surtout la partie en bas qui ici va nous intéresser. 














Comme vous pouvez le constater nous allons pouvoir voir les valeurs actuelles des différentes variables.
A la suite de cela vous allez avoir différents boutons permettant une avancée de l’exécution du code.



Le premier, Step Over va permettre d’avancer jusqu’à la prochaine méthode ou ligne en l’exécutant normalement et sans rentrer dedans.
Le deuxième, Step Into permet d’avancer également jusqu’à la prochaine méthode ou ligne, cependant si la prochaine exécution est une méthode, il va rentrer dedans.
Le troisième, Force Step Into se comporte de la même manière que le précédant mais cette fois ci va entrer dans les méthodes même si nous ne les avons pas créés ou qu’elles sont cachées.
Le dernier, Step Out va continuer l’exécution du code jusqu’à l’endroit où est rappelé la méthode dans laquelle il se trouve.

Grâce au débogueur ici nous allons pouvoir nous apercevoir que nous créons une boucle infinie car la variable nombre ne décroit jamais.

Le débogueur ne m'aide pas ? 

Il arrive également que même avec le débogueur du programme on n'arrive pas à trouver ou comprendre l'erreur.
Rien n'est perdu un point principale lors du développement d'une application est l'entraide.
Je ne parle pas simplement d'aller demander à son voisin mais bien de l'entraide au niveau communautaire avant tous.
Très souvent il vous suffit de prendre un peu de temps et de rechercher l'information liée à votre erreur et généralement vous trouvez des sites tels que Stack Overflow ou des documentations qui vous aideront à résoudre votre souci.

Une gestion un peu plus poussée

En Java ainsi que dans d'autre langage nous avons la possibilité de mettre en place un système de gestion d'erreur.
Ceci est le Try / Catch.


Le code si dessus réalise une division par 0, sans le Try / Catch, le programme plante générant une erreur. Le fonctionnement est assez simple. Le Try va tenter d'exécuter le code et le Catch va récupérer l'erreur si il y en a une et exécuter le code fournit en conséquence.
Attention le Try / Catch n'est pas à utiliser n'importe où, il sera généralement appliqué sur des zones de code dit sensibles.

Conclusion

Il ne faut pas paniqué à la vue de rouge. C'est très rare de réaliser un programme avec plusieurs lignes de code sans avoir d'erreur. Lors de cas d'erreur, il faut prendre le temps, se poser et s'informer.

 Lexique

 casse de nom: La casse de nom est le fait de respecter dans un programme la nomenclature établi au niveau des noms dans le cadre des minuscules et majuscules.

Source: 

Connaissance personnelle et cours.

Auteur: Geoffrey Kinnoo

Commentaires