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 :

Erreur impossible à gérer


Sujet :

Langage Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 22
    Points : 21
    Points
    21
    Par défaut Erreur impossible à gérer
    Bonjour !

    J'utilise une fonction qui permet de récupérer le code source d'un site.
    Pour 99% des sites, elle fonctionne, mais parfois j'obtiens cette erreur :

    1 mars 2013 17:57:58 org.apache.http.impl.client.DefaultRequestDirector tryExecute
    INFO: I/O exception (java.net.SocketException) caught when processing request: Connection reset
    1 mars 2013 17:57:58 org.apache.http.impl.client.DefaultRequestDirector tryExecute
    INFO: Retrying request

    Je ne cherche pas à corriger l'erreur, puisqu'elle est sûrement causée par les sites dont j'essaye de récupérer le code source.
    Je cherche plutôt à afficher un petit message du type "Le site est indisponible" à la place du gros message d'erreur rouge.

    Ce que je ne comprends pas c'est que j'ai l'impression de gérer toutes les exceptions qui peuvent arriver, donc comment cela se fait-il que cette erreur survienne ?

    Voici le code de la fonction qui permet de récupérer le code source d'une page :

    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    public static String getsource(String url)
    {	
    	HttpClient httpclient = new DefaultHttpClient();
    	httpclient.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT, 10000);
    	httpclient.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 10000);
    	httpclient.getParams().setParameter(ClientPNames.COOKIE_POLICY, "ignoreCookies");
     
    	HttpGet httpget = new HttpGet(url);		
    	StringBuilder source = new StringBuilder();
    	String resa = null;
     
    	try
    	{ 
    		HttpResponse response = httpclient.execute(httpget);
    		BufferedReader reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
     
            long ms = System.currentTimeMillis();
            boolean timeout_over = false;
            String line;
     
            while ((line = reader.readLine()) != null && !timeout_over) 
            {
            	source.append(line+"\r\n");
            	if(System.currentTimeMillis()-ms>10000)
            	{ timeout_over = true; }
            }
     
    		if(timeout_over)
    		{ 
    			resa = "Erreur";
    			System.out.println("Timeout Over");
    			httpget.abort();
    		}
    		else
    		{ resa = source.toString().trim(); }
     
    	} 
    	catch(IOException ioe) 
    	{
    		resa = "Erreur";
    		System.out.println("IO exception");
    	}
    	catch(Exception e)
    	{ 
    		resa = "Erreur";
    		System.out.println("Exception");
    	}
     
    	return resa;
    }
    Merci d'avance pour votre aide !

    Bonne journée !

  2. #2
    Membre actif Avatar de hbennou
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2008
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 162
    Points : 205
    Points
    205
    Par défaut
    Bonjour,

    Ces messages ne sont pas des erreurs mais plutôt des infos ce qui explique que tu ne passes pas par le bloc catch. Dans ce cas je te propose de gérer ce cas de figure toi même par l'implémentation d'une exception personnalisée.

Discussions similaires

  1. [D2005]/[C#] Erreur : "Impossible de créer le proces
    Par fab56 dans le forum Delphi .NET
    Réponses: 5
    Dernier message: 17/08/2005, 12h29
  2. Erreur impossible a resoudre
    Par anakinskywalker dans le forum MFC
    Réponses: 3
    Dernier message: 26/05/2005, 09h45
  3. [Erreur]impossible de trouver le fichier de config du moteur
    Par julietteste dans le forum Bases de données
    Réponses: 5
    Dernier message: 10/05/2005, 18h34
  4. erreur Impossible de tronquer la table
    Par cyberia dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 15/02/2005, 20h59
  5. erreur " impossible de focaliser une fenêtre désactivée
    Par djouahra.karim1 dans le forum Bases de données
    Réponses: 2
    Dernier message: 05/12/2004, 10h21

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