Accueil
Accueil
Le
Club
Delphi
Kylix
C
C++
Java
J2EE
DotNET
& C#
Visual
Basic
Access
Pascal
Dev
Web
PHP
ASP
XML
UML
SQL
SGBD
Win
Linux
Autres



Exception ... must be caught ... ?
auteurs : Clément Cunin, Sébastien Meric
Qu'est qu'une exception ?
En Java, les erreurs sont gérées à travers des exceptions qui sont levées par exemple lorsqu'une méthode ne peut pas accomplir correctement son travail. Le compilateur ne laisse pas le développeur ignorer ces exceptions potentielles, chaque source d'erreur doit être traitée.

Traiter une exception :
Pour pouvoir traiter ces exceptions il faut utiliser une succession try/catch (essaye/attrape).

try { /** ... mes instructions */ } catch (mon_type_d_Exception e) { /** ... mon traitement si cette erreur intervient */ } catch (un_autre_Exception e) { /** ... */ }
La "lancer" vers les méthodes appelantes :
Il est toujours préférable de traiter les exceptions au plus tôt pour préserver la lisibilité du code. Néanmoins, l'exception levée présente parfois un intérêt non négligeable pour la méthode appelante. En effet, si votre méthode courante permet de parser un fichier texte, il peut être utile pour la méthode appelante de savoir que le traitement n'a pas eu lieu, et pourquoi celui-ci n'a pas eu lieu. Un fichier manquant ne se traite pas de la même manière qu'un fichier corrompu ! Afin de lancer une exception vers la méthode appelante, il suffit de prévenir dès la déclaration :

public int maMethode() throws UneException, UneAutre, ...
Utiliser une exception qu'il n'est pas nécessaire d'attraper :
Si vous définissez vos propres exceptions, il peut arriver que vous soyez géné par l'obligation systématique de les "attraper". Certaines exceptions n'ont pas besoin d'être attrapées à la compilation, mais interrompent le déroulement de votre méthode, et de sa pile d'appel, tout en laissant une trace de son passage dans les fichiers de log. Ce type d'exception descend exclusivement de RuntimeException.


NullPointerException ?
auteur : Clément Cunin
L'exception 'NullPointer' est levée lorsque l'application essaye d'utiliser null alors qu'une instance d'un objet est requis. Cela inclut :
- l'appel d'une méthode sur un objet null
- La lecture ou la modification d'un champ d'un objet null
- Demander la longueur de null comme s'il sagissait d'un objet
- La lecture ou la modification d'une case d'un tableau null
- Lever une exception null

Cette exception est levée à chaque utilisation incorrecte d'un objet null.


ClassNotFoundException ... ?
auteur : Ioan Calapodescu
Cette exception peut être levée principalement par trois méthodes :

  • La méthode forName de la classe Class.
  • La méthode findSystemClass de la classe ClassLoader .
  • La méthode loadClass de la classe ClassLoader.

Cette exception indique simplement que votre CLASSPATH est mal configuré. Vérifiez que vos librairies externes y sont bien référencées. Pour mettre une librairie (jar) dans le CLASSPATH vous pouvez le placer dans le répertoire JAVA_HOME/jre/lib/ext. Une seconde possibilité est de définir le CLASSPATH lors du lancement de la commande java (-cp).

Si vous utilisez un jar, vous devez référencer les librairies extérieures dans le manifeste (cf Comment créer un jar exécutable ? ).


SecurityException ... ?
auteur : Ioan Calapodescu
Le SecurityManager lève ce genre d'exception quand vous tentez d'accèder à des ressources protégées.

Cela peut être le cas pour les Applets, par exemple. Celles-ci doivent être signées pour pouvoir accèder aux ressources de la machine cliente (Système de fichiers, classe Robot, etc.). Vous pouvez aussi éditer votre fichier java.policy pour régler ces droits d'accès.



OutOfMemoryError ... ?
auteur : Ioan Calapodescu
L'erreur java.lang.OutOfMemoryError est levée lorsque la JVM (la machine virtuelle Java) ne peut plus allouer de mémoire pour un Objet. Le GarbageCollector ne peut plus en liberer.

Une possibilité est d'allouer plus de mémoire au lancement de la JVM avec l'option -Xmsn. Vous pouvez aussi fixer la taille maximale de la mémoire avec l'option -Xmxn. Ou n indique la mémoire initiale disponible. Les valeurs par défaut sont respectivement de 2MB et 64 MB.

Voici un exemple de notation :

java -Xms6291456 // 6291456 bytes java -Xms6144k //6144 kilo java -Xms6m //6 méga


Consultez les autres F.A.Q's

Les codes sources présentés sur cette page sont libres de droits, et vous pouvez les utiliser à votre convenance. Pour le reste, ce document constitue une oeuvre intellectuelle protégée par les droits d'auteurs.

Ce document issu de http://www.developpez.com est soumis à deux licences, en fonction des contributeurs :

- Les contributions de Clément Cunin et Johann Heymes sont soumises aux termes de la la licence GNU FDL traduite en français ici. Permission vous est donnée de distribuer, modifier des copies des contributions de Clément Cunin et Johann Heymes tant que cette note apparaît clairement :
"Ce document issu de http://www.developpez.com est soumis à la licence GNU FDL traduite en français ici. Permission vous est donnée de distribuer, modifier des copies de cette page tant que cette note apparaît clairement".

- Pour ce qui est des autres contributions : Copyright © 2004 Developpez LLC : Tous droits réservés Developpez LLC. Aucune reproduction, ne peux en être faite sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts. Cette page est déposée à la SACD.
Vos questions techniques : forum d'entraide PHP - Publiez vos articles, tutoriels et cours
et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones
Nous contacter - Copyright 2000..2004 www.developpez.com