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 :

Problème lors de la gestion des exceptions


Sujet :

Langage Java

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2019
    Messages : 5
    Points : 6
    Points
    6
    Par défaut Problème lors de la gestion des exceptions
    Bonsoir !

    Je le tourne vers vous car, bien que je comprenne l'erreur et que je vois d'où elle vient, je n'ai aucune idée de pourquoi mes réparations n'y font rien!

    Mon code est le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    	/**
             * Cette méthode sert à filtrer les url récoltées, elle transforme les liens relatifs en url utilisables
             * 
             * @param urlBase l'url de base du site (ex : "https://www.youtube.com"
             * @param urlRecup l'url que l'on a récupéré (ex : "/profile/videos")
             * @throws IOException
             */
    	public static void filtre(String urlBase, String urlRecup) throws IOException {
    		try {
    			//if(ligne.length()==0) {
    				//System.out.println("Url Vide");
    			//}
    		if(urlRecup.charAt(0)=='/') { //si c'est un lien relatif...
    			Crt_or_update.Crt_of_update(urlBase+urlRecup, false);
    		}
    	 	else {
    			Crt_or_update.Crt_of_update(urlRecup, false);
    		}
    	}
    		catch(java.lang.ArrayIndexOutOfBoundsException e) {
    			e.printStackTrace();
    			System.out.println("Url vide");
    		}
    	}
    L'erreur est la suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Entrez l'URL
    https://www.liberation.fr/
    https:--www.liberation.fr-.html
    Registre complété
    Extraction de la ligne 639 : <ahref=""class="alert-nav-labeljs-alert-link"><spanclass="js-alert-title"></span></a>
    contenu extrait : 
     
     
     
    Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 0
    	at java.lang.String.charAt(String.java:658)
    	at LinkFinder.filtre(LinkFinder.java:67)
    	at LinkFinder.SearchAndIndex(LinkFinder.java:37)
    	at Launch.main(Launch.java:17)
    Le programme télécharge l'url qu'on entre, inspecte la page html et récupère les hyperliens en isolant le contenu du "href" des balises <a>.
    On envoie ensuite le contenu dans un filtre (le code que apparent). Puis on gère les erreurs pour faire ressortir un lien tout beau.
    Or, sur cette page, un href est vide. Et, puisque on cherche le caractère en position 0, et que la chaine de caractère est vide, il y a une erreur.

    La question est pourquoi cette exception ne marche pas??? J'ai même essayer de la gérer par un if, mais rien ne fonctionne!

    Quelqu'un aurait une idée?

    Merci d'avance!

  2. #2
    Membre chevronné Avatar de jeffray03
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    1 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 501
    Points : 2 120
    Points
    2 120
    Par défaut
    salut,
    tout simplement parceque tu ne prend pas la bonne exception,
    ici on a :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    catch(java.lang.ArrayIndexOutOfBoundsException e) {
    			e.printStackTrace();
    			System.out.println("Url vide");
    		}
    au lieu de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    StringIndexOutOfBoundsException
    Eric

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2019
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Salut,
    Merci beaucoup pour ta réponse! Dire que je me suis pris la tête pendant 2 heures là dessus . Maintenant tout fonctionne comme prévu!

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

Discussions similaires

  1. Problème de gestion des exceptions
    Par tnarol dans le forum Général Java
    Réponses: 3
    Dernier message: 24/02/2011, 16h07
  2. Problème de gestion des exceptions
    Par trecks dans le forum C++
    Réponses: 4
    Dernier message: 01/11/2007, 12h47
  3. Réponses: 2
    Dernier message: 07/06/2007, 17h02
  4. Problème de gestion des exceptions
    Par Artasali dans le forum C++Builder
    Réponses: 2
    Dernier message: 08/02/2007, 03h20
  5. Problème - Gestion des exceptions - MFC.
    Par Atomikx dans le forum MFC
    Réponses: 4
    Dernier message: 14/11/2005, 09h38

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