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 :

Mauvais paramètre reçu : quelle exception lancer ?


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 77
    Par défaut Mauvais paramètre reçu : quelle exception lancer ?
    Bonjour tout le monde,

    Existe-t-il un type d'exception Java qui correspond à la vérification de la bonne valeur d'un paramètre reçu par une méthode ou fonction ?

    Par exemple, ma fonction f reçoit un entier n en paramètre. n doit être supérieur ou égal à 0 pour que ma fonction puisse faire son traitement. Je teste donc ça valeur ; et que faire si n est négatif ? Je souhaiterais renvoyer une exception mais je ne sais pas si conventionnellement on en utilise une particulière dans ce cas. Je sais qu'en C#, il existe une ArgumentException.

    Que me conseillez vous ?

  2. #2
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    java.lang.IllegalArgumentException, et c'est une RuntimeException, autrement dit pas obligé de la catcher.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  3. #3
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 77
    Par défaut
    Merci de ton conseil !

    Quand tu dis qu'il est inutile de Catcher, tu veux dire que je n'ai pas besoin de m'en charger dans mon code car autant que ça fasse planter tout le programme ?

  4. #4
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    Non, pas du tout. Je dis simplement que dans ta conception, tu peux prendre en compte le fait que ça lance un RuntimeException, c'est tout. Tu peux donc catcher les exceptions de ce type bien plus haut dans les appels de méthodes. Ce n'est pas obligatoirement la méthode qui va appeler celle qui génère une RuntimeException qui doit catcher l'exception.
    Il est toujours important de prévoir un mécanisme pour gérer les erreurs !
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  5. #5
    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,

    En Java tu as deux types d'exceptions :
    • Les checked-exceptions, qui doivent obligatoirement être traité (via un catch) ou remonté à la méthode appellante (via un throws dans la signature) et dans ce dernier cas la gestion de l'exception remonte d'un cran. Bref tu es obligé de les traiter quelque part dans ton code. Cela permet un code plus sécurisé (on ne peut pas "oublier" de traiter l'exception car le compilateur ne l'accepterais pas) mais un peu lourd à gérer (à cause de l'obligation de traiter l'exception).
    • A l'inverse, les unchecked-exceptions (qui hérite plus ou moins directement de RuntimeException) peuvent être remontées sans contrainte particulière et il n'est donc pas nécessaire de les traiter. Cela permet une utilisation aisée (on peut se passer du try/catch) mais provoquera un plantage de l'application (ou du thread courant pour une appli multi-thread) si jamais l'exception est remonté...



    Du coup le fait que tu ne soit pas obligé de traiter les IllegalArgumentException (qui est donc une unchecked-exception) peut être un avantage :
    • Si tu code en dur dans ton programme tu peux te passer du try/catch car tu es sûr que l'exception ne remontera pas.
    • Si la valeur vient d'une saisie utilisateur ou autres, tu pourras utiliser le try/catch pour détecter les mauvaise valeur.



    a++

    PS : Si je ne me trompe pas, le C# ne possède que des unchecked-exceptions.

  6. #6
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 77
    Par défaut
    Merci beaucoup pour vos explications. J'ai appris les Exceptions durant mes etudes mais je n'avais jamais entendu parler de cette notion de checked et unchecked exceptions.

    Resolu !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Python et Google app mauvais paramètre
    Par xinu1.1 dans le forum Général Python
    Réponses: 0
    Dernier message: 23/11/2010, 13h32
  2. Réponses: 1
    Dernier message: 28/05/2010, 13h39
  3. Réponses: 6
    Dernier message: 26/11/2008, 21h59

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