[tutoriel] comment réagir face à une exception

Soyez le premier à donner votre avis sur cette source.

Vue 3 647 fois - Téléchargée 578 fois

Description

Ce tutoriel liste les principales exceptions et donne une méthode permettant de les surmonter. Il s'adresse aux débutants.

Je n'ai pas pensé à tout, c'est certain, alors si vous avez des idées que je n'ai pas eu, je suis prenneur

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Utilisateur anonyme -
Il est difficile de proposer des conseils sur la manière de traiter les exceptions sans rentrer dans les particularités et ton tutoriel aura besoin d'une mise à jour à la sortie de Java 1.7 à cause de la nouvelle clause "try with resource". Je vois mal comment on peut traiter cela tout en restant assez général. Beaucoup de débutants posent des questions très bêtes sur les exceptions ici souvent soit parce qu'ils n'ont même pas regardé la documentation de la classe de l'exception soit parce qu'ils ne comprennent pas l'anglais. Fournir des tutoriels en français est une bonne chose mais il ne faut pas laisser entendre qu'on peut s'en sortir sans une maîtrise minimale de l'anglais technique ni farfouiller dans l'excellente documentation en ligne. Bon courage.
cs_Julien39
Messages postés
6413
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
250 -
Bonjour,

Ce tutoriel ne parle pas du finally, c'est vrai mais il ne parle pas non plus du try et du catch. Il est destiné à traiter les erreurs de codage du développeur et ne donne pas de solution pour gérer les exceptions dans le code.

Vu les commentaires sur ce tutoriel, il n'est pas bon, j'accepte vos remarques et je vais essayer d'en proposer une version différente.
Utilisateur anonyme -
Bonjour

En fait, même pour les exceptions de type NullPointerException, je ne suis pas d'accord, tester si c'est null ne suffit pas, il faut au moins mettre un message dans les logs si une méthode ne devrait pas être appelée avec un paramètre à null voire lancer une exception plus explicite encapsulant l'exception en question du genre throw new IllegalStateException("le prénom ne devrait jamais être à null",npe). C'est vrai pour les exceptions en général. Il faut choisir dans quelle couche on l'attrape et dans quelle couche on offre un traitement adapté.

Le tutoriel ne parle pas du tout du "finally".

Je pense que les débutants devraient surtout avoir le réflexe de lire la documentation Java.

Le dernier paragraphe sur OutOfMemoryError traite de la mémoire de manière très très superficielle, le conseil donné ne résoudra pas le problème si une augmentation de la mémoire non paginée aurait été plus adéquate et s'il n'est pas possible d'augmenter la taille passée à -Xmx de telle sorte que cette mémoire en accès direct soit suffisante.
cs_Julien39
Messages postés
6413
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
250 -
Bonjour et merci pour vos remarques.

Vous avez raison, les exceptions ne sont pas forcément à éviter. Le but de ce tutoriel n'est pas d'apprendre comment gérer les exceptions mais permet de comprendre ce qui a mal été fait lorsque l'exception est levée lors de la phase de développement et est dû à une erreur du programmeur.

L'idée de faire ce tutoriel m'est venue en voyant que le forum était truffé de questions concernant les exceptions et leur signification.

Je vais essayer de tenir compte de vos remarques et je posterai avant la fin de la semaine une nouvelle version de ce tutoriel.

N'hésitez pas à ajouter des choses si vous avez d'autres idées.
Isammoc
Messages postés
39
Date d'inscription
mercredi 19 février 2003
Statut
Membre
Dernière intervention
5 septembre 2015
-
Au vu du titre, j'aurais cru à des exemples sur la façon d'agir lors de la levée d'exception et comment s'en charger.

Dans les cas des NullPointerException (et la plupart des Exceptions courantes), tester soi-même la nullité possible des arguments pour les lever avant le reste de la méthode (pour ne pas être dans un état instable).

Avec la bonne pratique de ne JAMAIS ignorer une exception :
- Soit réellement avoir quelque chose à faire dans le catch
- De la laisser passer au-dessus avec le marqueur "throws" de la méthode et en commentant correctement les cas en questions.
- D'encapsuler l'Exception "catchée" par une Exception personnalisée.

Ainsi que la bonne pratique d'englober la tâche entière dans la gestion dans le bloc try/catch.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.