Signification d'une exception [Résolu]

Messages postés
114
Date d'inscription
mardi 26 janvier 2010
Dernière intervention
26 mai 2014
- 30 nov. 2011 à 11:51 - Dernière réponse :
Messages postés
114
Date d'inscription
mardi 26 janvier 2010
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 

Votre réponse

8 réponses

Meilleure réponse
Messages postés
6450
Date d'inscription
mardi 8 mars 2005
Dernière intervention
17 mai 2018
30 nov. 2011 à 14:27
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.

Merci cs_Julien39 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 91 internautes ce mois-ci

Commenter la réponse de cs_Julien39
Meilleure réponse
Messages postés
6450
Date d'inscription
mardi 8 mars 2005
Dernière intervention
17 mai 2018
30 nov. 2011 à 14:31
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

Merci cs_Julien39 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 91 internautes ce mois-ci

Commenter la réponse de cs_Julien39
Messages postés
36
Date d'inscription
jeudi 27 octobre 2011
Dernière intervention
25 novembre 2016
30 nov. 2011 à 13:05
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
6450
Date d'inscription
mardi 8 mars 2005
Dernière intervention
17 mai 2018
30 nov. 2011 à 13:18
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
114
Date d'inscription
mardi 26 janvier 2010
Dernière intervention
26 mai 2014
30 nov. 2011 à 13:35
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
6450
Date d'inscription
mardi 8 mars 2005
Dernière intervention
17 mai 2018
30 nov. 2011 à 14:11
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
114
Date d'inscription
mardi 26 janvier 2010
Dernière intervention
26 mai 2014
30 nov. 2011 à 14:20
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
114
Date d'inscription
mardi 26 janvier 2010
Dernière intervention
26 mai 2014
30 nov. 2011 à 16:34
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

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.