Signification d'une exception [Résolu]

Messages postés
113
Date d'inscription
mardi 26 janvier 2010
Statut
Membre
Dernière intervention
26 mai 2014
- - Dernière réponse : cs_redbar
Messages postés
113
Date d'inscription
mardi 26 janvier 2010
Statut
Membre
Dernière intervention
26 mai 2014
- 30 nov. 2011 à 16:34
Bonjour
JE voudrais savoir que signifie cette exception:

Exception occurred during event dispatching:
java.lang.ArrayIndexOutOfBoundsException: -1
at mti.ModelTableau.getValueAt(ModelTableau.java:47)
at javax.swing.JTable.getValueAt(Unknown Source)
at mti.Depense$5.valueChanged(Depense.java:363)
at javax.swing.DefaultListSelectionModel.fireValueChanged(Unknown Source)
at javax.swing.DefaultListSelectionModel.fireValueChanged(Unknown Source)
at javax.swing.DefaultListSelectionModel.fireValueChanged(Unknown Source)
at javax.swing.DefaultListSelectionModel.changeSelection(Unknown Source)
at javax.swing.DefaultListSelectionModel.changeSelection(Unknown Source)
at javax.swing.DefaultListSelectionModel.removeSelectionIntervalImpl(Unknown Source)
at javax.swing.DefaultListSelectionModel.clearSelection(Unknown Source)
at javax.swing.JTable.clearSelection(Unknown Source)
at javax.swing.JTable.clearSelectionAndLeadAnchor(Unknown Source)
at javax.swing.JTable.tableChanged(Unknown Source)
at javax.swing.table.AbstractTableModel.fireTableChanged(Unknown Source)
at javax.swing.table.AbstractTableModel.fireTableDataChanged(Unknown Source)
at mti.ModelTableau.addRow(ModelTableau.java:97)
at mti.Depense$2.actionPerformed(Depense.java:239)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$000(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.Dialog$1.run(Unknown Source)
at java.awt.Dialog$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Dialog.show(Unknown Source)
at java.awt.Component.show(Unknown Source)
at java.awt.Component.setVisible(Unknown Source)
at java.awt.Window.setVisible(Unknown Source)
at java.awt.Dialog.setVisible(Unknown Source)
at mti.Depense.(Depense.java:64)
at mti.MenuPrincipal$20.actionPerformed(MenuPrincipal.java:462)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$000(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)


elle se produit tout le temps quand je travaille avec les Jtables
Merci.
Afficher la suite 

8 réponses

Meilleure réponse
Messages postés
6413
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
244
3
Merci
Aucune, tu peux tout gérer comme ca mais ton code sera pourri. Le temps d'exécution sera un peu plus long, c'est tout.

Si c'est un truc que tu dois rendre, tu devrais t'arranger pour le modifier.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 196 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_Julien39
Messages postés
6413
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
244
3
Merci
En gros, toutes les exceptions issues de la classe RuntimeException sont des exceptions causée par une erreur de développement. Tu gères donc les bornes du tableau en catchant les erreur de développement, ce qui n'est pas très heureux.

Surtout, qu'il est vraiment très simple d'itérer sur les éléments d'un tableau :

if(tableau.length()>0){
for(int i=0; i<tableau.length; i++){
System.out.println(tableau[i]);
}
}


Si tu n'as pas fait d'erreur de développement en amont, cette méthode ne lèvera jamais d'indexOutOfBoundException

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 196 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_Julien39
Messages postés
36
Date d'inscription
jeudi 27 octobre 2011
Statut
Membre
Dernière intervention
25 novembre 2016
0
Merci
Salut,
C prcq tu essaye d'atteindre une index en dehors de ton JTable, surement que tu le parcours avec une boucle, dans ce cas verifie bien la condition de sortie
Commenter la réponse de elgenius
Messages postés
6413
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
244
0
Merci
Bonjour,

Quand tu as une exception, tu peux aller jeter un oeil à la doc, tu as toujours la signification :
Thrown to indicate that an array has been accessed with an illegal index. The index is either negative or greater than or equal to the size of the array.


C'est ici : http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/ArrayIndexOutOfBoundsException.html
Commenter la réponse de cs_Julien39
Messages postés
113
Date d'inscription
mardi 26 janvier 2010
Statut
Membre
Dernière intervention
26 mai 2014
0
Merci
Merci les gars je comprends maintenant. Je contournais cette erreur en mettant le code qui générait cette erreur dans
 try{ }catch( ArrayIndexOutOfBoundsException e){ //Ici je ne mettais rien   }

Ainsi donc mon programme continuais son exécution sans problème.
Mais voudrais savoir si c'est la bonne manière de faire
ou il faut forcement passer par une boucle comme le dit geniuscs.
merci
Commenter la réponse de cs_redbar
Messages postés
6413
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
244
0
Merci
Non, ce n'est pas la bonne manière de faire, tu ne dois jamais catcher les ArrayIndexOutOfBoundsException, mais tu dois empêcher qu'elle soit levée. C'est le cas pour toutes les RuntimeException (NullPointerException et IndexOutOfBoundsException principalement)

DE toute manière, un try avec rien dans le catch, est toujours une mauvaise idée.


Tu ne dois récupérer dans ton tableau que des valeurs qui sonjt comrises entre 0 et length-1. Si c'est l'utilisateur qui entre les valeurs, teste si les valeurs qu'il enreent sont bien dans cet intervalle.
Commenter la réponse de cs_Julien39
Messages postés
113
Date d'inscription
mardi 26 janvier 2010
Statut
Membre
Dernière intervention
26 mai 2014
0
Merci
Alors peux tu me dire les conséquence de ma manière de faire car je dois alors tout reprendre du moins là où j'ai catcher ce type d'exception.
Commenter la réponse de cs_redbar
Messages postés
113
Date d'inscription
mardi 26 janvier 2010
Statut
Membre
Dernière intervention
26 mai 2014
0
Merci
Ok, j'ai compris
Je vais donc reprendre le code. mais il faut dire que ça va pas etre du gateau. Mais je suis pas pour autant découragé car c'est un bon exercice pour moi.
merci Beaucoup
Commenter la réponse de cs_redbar