Exception java [Résolu]

Messages postés
30
Date d'inscription
mardi 21 juin 2011
Statut
Membre
Dernière intervention
4 avril 2012
- - Dernière réponse : cs_Julien39
Messages postés
6449
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
- 5 août 2011 à 09:13
Bonsoir tout le monde,
J'ai rencontré l'exception suivante dans l'exécution de mon programme:
java.lang.ArrayIndexOutOfBoundsException
Est ce quelqu’un peut m'aider merci d'avance
Afficher la suite 

Votre réponse

16 réponses

Meilleure réponse
Messages postés
6449
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
223
3
Merci
Comment lances tu ton programme ?

Il n'y a pas d'argument passé à la méthode main, normal que l'erreur soir levée.

Dire « Merci » 3

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

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

Commenter la réponse de cs_Julien39
Messages postés
6449
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
223
3
Merci
Quand tu lances ton programme depuis une console, il suffit de mettre le paramètre quand tu lances en ligne de commande :
java -jar programme.jar param1


Je te déconseilles néanmoins ce fonctionnement, il est préférable de mettre un attribut dans ta classe

Dire « Merci » 3

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

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

Commenter la réponse de cs_Julien39
Messages postés
12336
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
26
3
Merci
Bonjour,

Depuis eclipse, il te suffit d'aller dans run&debug settings, t'as une case pour les arguments à donner au main.

Cordialement,

Maxime

Dire « Merci » 3

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

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

Commenter la réponse de coucou747
Messages postés
6449
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
223
0
Merci
Bonjour,

Tu essayes de récupérer un index qui est en dehors de la plage des valeurs d'un tableau. Tu dois faire un truc du genre :

String[] tableau = new String[3];
System.out.println(tableau[10]);
Commenter la réponse de cs_Julien39
0
Merci
Bonjour,

Noter qu'en "catchant" l'exception et en utilisant xxx.printStackTrace(); on obtient le n° de la ligne du code qui provoque la levée de l'exception.

Cordialement,


...\ Dan /...
Commenter la réponse de Utilisateur anonyme
Messages postés
6449
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
223
0
Merci
En général, c'est assez simple à corriger, si tu n'y arrives pas, montre nous ton code et on te dira ce qui ne va pas.
Commenter la réponse de cs_Julien39
Messages postés
30
Date d'inscription
mardi 21 juin 2011
Statut
Membre
Dernière intervention
4 avril 2012
0
Merci
Bonsoir,
Je suis en train de réaliser une application qui fait le parcours d'une dtd d'un document xml.le code est le suivant:
package dtd;

import java.io.*;

class Tokenize
{
public static void main(String[] args)
{
try
{
DTDParser_New1 parser = null;
// MAW Version 1.17
// If it looks like the filename may be a URL, use the URL class
if (args[0].indexOf("://") > 0)// l'exception déjà cité se manifeste ici
{
parser = new DTDParser_New1(new URL(args[0]), true);
}
else
{
parser = new DTDParser_New1(new File(args[0]), true);
}

// Parse the DTD and ask the parser to guess the root element
DTD dtd = parser.parse(true);

if (dtd.rootElement != null)
{
System.out.println("Root element is probably: "+
dtd.rootElement.name);
}

Enumeration e = dtd.elements.elements();

while (e.hasMoreElements())
{
DTDElement elem = (DTDElement) e.nextElement();

System.out.println("Element: "+elem.name);
System.out.print(" Content: ");
dumpDTDItem(elem.content);
System.out.println();

if (elem.attributes.size() > 0)
{
System.out.println(" Attributes: ");
Enumeration attrs = elem.attributes.elements();
while (attrs.hasMoreElements())
{
System.out.print(" ");
DTDAttribute attr = (DTDAttribute) attrs.nextElement();
dumpAttribute(attr);
}
System.out.println();
}
}
Commenter la réponse de cs_horka
Messages postés
30
Date d'inscription
mardi 21 juin 2011
Statut
Membre
Dernière intervention
4 avril 2012
0
Merci
Bonsoir,
Alors connaissez vous comment passez l'argument dans main.Merci d'avance.
Commenter la réponse de cs_horka
Messages postés
30
Date d'inscription
mardi 21 juin 2011
Statut
Membre
Dernière intervention
4 avril 2012
0
Merci
Bonsoir tout le monde,
j'utilise eclipse galileo.
j'ai essayé de trouver la case dans laquelle je peux donner les arguments au main mais je ne la retrouve pas.Dans le menu run juste il y'a run,debug,run as,debug as,run configuration,debug configuration.
Comment dans ce cas je peut donner les paramètres de la classe principale?

Cordialement
Haithem
Commenter la réponse de cs_horka
Messages postés
12336
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
26
0
Merci
clique droit sur le projet
propriétés
run & debug settings
Commenter la réponse de coucou747
Messages postés
30
Date d'inscription
mardi 21 juin 2011
Statut
Membre
Dernière intervention
4 avril 2012
0
Merci
Bonsoir tout le monde,
Bonsoir coucou747,
Je vous remercie beaucoup pour votre proposition.
J'ai trouvé une solution pour l'exception déjà cité.
Mais une nouvelle exception est levée à savoir :

?java.lang.ClassCastException: dtd.DTDPCData cannot be cast to dtd.DTDItem
at dtd.DTDParser_New1.parse(DTDParser_New1.java:147)
at dtd.Tokenize.main(Tokenize.java:32)

Au niveau de la classe DTDParser_New1,l'instruction qui provoque l'exception est:
while (items.hasMoreElements())
{
removeElements(roots, dtd, (DTDItem) items.nextElement());
}
}

Au niveau de la classe Tokenize ,l'instruction qui provoque l'exception est:
// Parse the DTD and ask the parser to guess the root element
DTD dtd = parser.parse(true);

if (dtd.rootElement != null)
{
System.out.println("Root element is probably: "+
dtd.rootElement.name);
}
Est ce que vous pouvez me dire comment cette fois je peux corriger l'erreur et merci d'avance.
Commenter la réponse de cs_horka
Messages postés
12336
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
26
0
Merci
C'est une erreur totalement différente...

(DTDItem) items.nextElement()

il semble que la valeur ne soit pas du bon type.

Essaie de l'afficher ou de voir d'ou elle vient...
Commenter la réponse de coucou747
Messages postés
30
Date d'inscription
mardi 21 juin 2011
Statut
Membre
Dernière intervention
4 avril 2012
0
Merci
Mais comment?
Est ce que je dois éliminer le casting sur items ou non?
Commenter la réponse de cs_horka
Messages postés
2116
Date d'inscription
samedi 8 novembre 2003
Statut
Contributeur
Dernière intervention
6 octobre 2012
9
0
Merci
salut
cette erreur parle d elle meme ... tu n a tout simplement pas le type d objot attendu ... revois ton traitement... ou test la caste avant de caster ton objet...

GodConan ;o)
Commenter la réponse de cs_GodConan
Messages postés
30
Date d'inscription
mardi 21 juin 2011
Statut
Membre
Dernière intervention
4 avril 2012
0
Merci
Bonsoir tout le monde,
Bonsoir GodConan,
S'il vous plait essayez de m'expliquer d'avance comment tester la caste avant de caster
l'objet.Je n'ai rien compris ce que vous dises.Je suis débutant et j'espère que vous m’expliquez les choses pas à pas.Merci d'avance
Commenter la réponse de cs_horka
Messages postés
6449
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
223
0
Merci
Pour savoir si tu peux caster un objet en in autre, tu peux utiliser instanceof

String s ="12";
Intger i =0;
if(s instanceof Integer){
   System.out.println("entier");
   i = (Integer)s;
}
else {
   System.out.println("non entier");
}
Commenter la réponse de cs_Julien39