IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

Différence entre RuntimeException et Error


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 82
    Par défaut Différence entre RuntimeException et Error
    Bonjour,

    Je me pose une question relative à la différence entre l'exception RuntimeException et l'erreur Error : ces deux classes sont des dérivées de Throwable qui n'ont pas besoin d'être précisées dans la clause throws d'une méthode. Elles conviennent donc bien a priori pour indiquer des erreurs anormales, j'entends par là des erreurs qui ne sont pas censées se produire dans le déroulement prévu du programme.

    Mais quand je suis face à un problème imprévu, comment savoir si je dois plutôt lancer une Error ou une RuntimeException ?

    J'ai lu la javadoc et la faq à ce sujet mais je n'ai pas trouvé d'info répondant clairement à cette question.

    Merci !

  2. #2
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,

    Généralement, les Errors sont utilisées pour des problèmes graves qui ne devraient normalement pas être traitées, ce qui engendrera donc le plantage de l'application. Généralement il est rare que les développeurs utilisent directement les Errors : elles sont remontées par la JVM.

    Un exemple : une NoClassDefFoundError est remonté lorsque la JVM n'arrive pas à charger une classe.


    En fait le developpeur devrait normalement se limiter à utiliser des Exceptions ou des RuntimeExceptions :
    • Les Exceptions lorsque tu veux forcer les développeurs à traiter les exceptions, en général c'est bien de les utiliser lorsque l'exception peut survenir dans le cadre normal d'utilisation du programme (par exemple les IOException, car on ne peut jamais être sûr de la disponibilité du réseaux et/ou des accès aux fichiers).
    • Les RuntimeExceptions lorsque le problème est moins "aléatoire" (je veux dire par là qu'il ne dépend pas forcément d'un autre système), comme par exemple les erreurs de programmations (ArrayIndexOutOfBoundsException, NullPointerException, IllegalArgumentException, etc.).



    a++

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 82
    Par défaut
    Merci adiGuba pour ta réponse.

    Je pensais justement me restreindre à l'utilisation d'Error pour des erreurs de programmation donc ton avis me fait changer de position ! Je vais suivre ton opinion et utiliser des RuntimeException.

    Petite suggestion : ne faudrait-il pas rajouter une entrée dans la FAQ à ce sujet ? Je trouve que c'est un point obscur pour le débutant.

    Merci !

Discussions similaires

  1. Différence entre un "bidouilleur" et un Pro ?
    Par christ_mallet dans le forum Débats sur le développement - Le Best Of
    Réponses: 290
    Dernier message: 28/11/2011, 10h53
  2. Réponses: 5
    Dernier message: 11/12/2002, 12h31
  3. Différence entre TCP, UDP, ICMP
    Par GliGli dans le forum Développement
    Réponses: 1
    Dernier message: 13/09/2002, 08h25
  4. Différences entre jmp, jz, jnz, etc
    Par christbilale dans le forum Assembleur
    Réponses: 3
    Dernier message: 05/07/2002, 15h09
  5. Réponses: 3
    Dernier message: 07/05/2002, 16h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo