Aide sur la gestion des exeptions en java
Fermé
glennog
Messages postés
293
Date d'inscription
jeudi 3 janvier 2013
Statut
Membre
Dernière intervention
19 novembre 2013
-
15 mars 2013 à 17:51
glennog Messages postés 293 Date d'inscription jeudi 3 janvier 2013 Statut Membre Dernière intervention 19 novembre 2013 - 16 mars 2013 à 12:08
glennog Messages postés 293 Date d'inscription jeudi 3 janvier 2013 Statut Membre Dernière intervention 19 novembre 2013 - 16 mars 2013 à 12:08
A voir également:
- Aide sur la gestion des exeptions en java
- Waptrick java football - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
- Jeux java football - Télécharger - Jeux vidéo
- Java jre - Télécharger - Langages
- Jeux java itel - Forum Mobile
2 réponses
KX
Messages postés
16733
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
31 janvier 2024
3 014
15 mars 2013 à 18:16
15 mars 2013 à 18:16
Commençons par le finally, il permet d'exécuter un morceau de code qu'il y ait eu exception ou non.
Personnellement, je ne m'en suis jamais servi, je préfère faire comme ça :
Ensuite, il faut savoir que le traitement des exceptions est obligatoire en Java.
Le throws permet d'indiquer qu'on n'a pas géré une exception dans la méthode, et qu'il faudra la gérer dans la méthode qui l'appelle.
Exemple, si la méthode m1 peut générer une Exception, on pourra faire :
Ou alors faire :
Si tu comprend le principe des throws il est plus facile de comprendre comment savoir quel type d'exception il faut gérer : il faut gérer dans un try catch, les exceptions qui apparaissent avec des "throws" dans les méthodes (ce qui est indiqué dans leur documentation)
Avec mon exemple du dessus, m1 génère une Exception donc je dois faire un try/catch ou un throws sur la classe Exception à chaque fois que j'utilise m1.
Un point important à comprendre, c'est que les exceptions héritent les unes des autres. Tu auras une hiérarchie comme ceci :
Lorsque tu traites une IOException par exemple, tu peux donc la traiter directement, ou alors traiter sa classe mère (Exception) ou bien encore la classe mère au dessus (Throwable, qui gère aussi les Error)
À noter : la classe RuntimeException et ses classes filles sont un peu particulières car les exceptions qu'elles génèrent peuvent ne pas être traitées dans le code. Ce sont les seules qui auront des throws mais pour lesquels tu pourras ne pas mettre de try/catch (dans les RuntimeException on retrouve notamment les NullPointerException, ArrayOutOfBoundsException, etc.)
try { // instructions qui peuvent poser problème } catch (Throwable t) { // instruction à effectuer si problème } finally { // instructions à effectuer qu'il y ait problème ou non }
Personnellement, je ne m'en suis jamais servi, je préfère faire comme ça :
try { // instructions qui peuvent poser problème } catch (Throwable t) { // instruction à effectuer si problème } // instructions à effectuer qu'il y ait problème ou non
Ensuite, il faut savoir que le traitement des exceptions est obligatoire en Java.
Le throws permet d'indiquer qu'on n'a pas géré une exception dans la méthode, et qu'il faudra la gérer dans la méthode qui l'appelle.
Exemple, si la méthode m1 peut générer une Exception, on pourra faire :
void m2() { try { m1(); } catch (Exception e) { // traitement de l'exception } } void m3() { m2(); }
Ou alors faire :
void m2() throws Exception { m1(); } void m3() { try { m2(); } catch (Exception e) { // traitement de l'exception } }
Si tu comprend le principe des throws il est plus facile de comprendre comment savoir quel type d'exception il faut gérer : il faut gérer dans un try catch, les exceptions qui apparaissent avec des "throws" dans les méthodes (ce qui est indiqué dans leur documentation)
Avec mon exemple du dessus, m1 génère une Exception donc je dois faire un try/catch ou un throws sur la classe Exception à chaque fois que j'utilise m1.
Un point important à comprendre, c'est que les exceptions héritent les unes des autres. Tu auras une hiérarchie comme ceci :
Object Throwable Error AWTError IOError ... Exception IOException RuntimeException ...
Lorsque tu traites une IOException par exemple, tu peux donc la traiter directement, ou alors traiter sa classe mère (Exception) ou bien encore la classe mère au dessus (Throwable, qui gère aussi les Error)
À noter : la classe RuntimeException et ses classes filles sont un peu particulières car les exceptions qu'elles génèrent peuvent ne pas être traitées dans le code. Ce sont les seules qui auront des throws mais pour lesquels tu pourras ne pas mettre de try/catch (dans les RuntimeException on retrouve notamment les NullPointerException, ArrayOutOfBoundsException, etc.)
glennog
Messages postés
293
Date d'inscription
jeudi 3 janvier 2013
Statut
Membre
Dernière intervention
19 novembre 2013
4
16 mars 2013 à 12:08
16 mars 2013 à 12:08
merci beaucoup pour ton post , je comprends mieux maintenant , je t'en suis reconnaisant.
Bonne journée à toi l'ami
Bonne journée à toi l'ami