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

avec Java Discussion :

Comment utiliser IndexOutOfBoundsException


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Analyste IP + Programmation
    Inscrit en
    Février 2016
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyste IP + Programmation
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2016
    Messages : 59
    Par défaut Comment utiliser IndexOutOfBoundsException
    Bonjour,

    Toujours dans l'optique de mon tp qui avance bien merci à Joel Drigo....

    Actuellement dans deux de mes 5 méthodes je dois appeler l'erreur IndexOutOfBoundsException dans certaines conditions...

    Je connais déjà le principe des Try / Catch

    Je n'ai jamais faire appel d'un type erreur lors de l'appel d'une méthode....



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    // Contexte : AcideRibonucleique  arn est un arraylist
     
    public AcideRibonucleique generalise( AcideRibonucleique arn ) throws IndexOutOfBoundsException
     
    //Je pense que je devrais appeler en toute logique erreur si un des deux arrayList est vide. Je pense que ça va être un bon départ...
     
    if (this.isEmpty() || arn.isEmpty()){
    //Je dois faire mon appel 
    //} else { blabla
    //}
    Merci d'avance

  2. #2
    Membre confirmé
    Homme Profil pro
    Analyste IP + Programmation
    Inscrit en
    Février 2016
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyste IP + Programmation
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2016
    Messages : 59
    Par défaut
    J'ai trouvé la solution dans mes anciens notes et exercices....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    public AcideAmine getAcideAmine( int position ) throws IndexOutOfBoundsException{
            AcideAmine acideAmineRetournee = null;
            if (this.isEmpty()) {
                System.out.println("La chaine de Nucleotide ne peut être vide pour avoir des acides aminées.");
            } else if (!(this.size() % 3 == 0)){ 
                throw new IndexOutOfBoundsException("Vous devez utiliser un nombre qui se divise par 3 pour avoir une séquence acide aminée valide");
     
    ...

  3. #3
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Salut,

    Il serait judicieux que tu soulèves une IndexOutOfBoundException dans le cas où this.isEmpty(). IndexOutOfBoundException signifie index hors limites. C'est justement le cas lorsque la liste est vide : il n'y a aucun index valide à traiter. Il y a également le cas où index est supérieur à la taille de la liste, que tu devrais traiter. En réalité, si tu ne le traite pas, il sera traité d'office par la get() que tu fais probablement après. Si tu veux que la stacktrace soit limitée à ta méthode (ce qui aurait un sens logique), il vaut mieux le traiter dans ta méthode.
    En revanche, pour le cas (!(this.size() % 3 == 0)), on n'est pas vraiment hors limite. C'est simplement que l'index demandé ne permet pas de déterminer une réponse : l'exception IllegalArgumentException serait plus adaptée à ce cas.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 24/02/2009, 12h06
  2. Comment utiliser un cache ?
    Par TOM-Z dans le forum XMLRAD
    Réponses: 4
    Dernier message: 14/03/2003, 09h55
  3. comment utiliser actionscript ?
    Par webs dans le forum Flash
    Réponses: 3
    Dernier message: 09/02/2003, 23h11
  4. Comment utiliser OUT ?
    Par Bouziane Abderraouf dans le forum CORBA
    Réponses: 3
    Dernier message: 20/07/2002, 09h35
  5. Réponses: 5
    Dernier message: 11/06/2002, 15h21

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