Erreur impossible à gérer
david11001
Messages postés
16
Statut
Membre
-
david11001 Messages postés 16 Statut Membre -
david11001 Messages postés 16 Statut Membre -
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:34:10 org.apache.http.impl.client.DefaultRequestDirector tryExecute
INFO: I/O exception (java.net.SocketException) caught when processing request: Connection reset
1 mars 2013 17:34:10 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 :
Merci d'avance pour votre aide !
Bonne journée ! :)
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:34:10 org.apache.http.impl.client.DefaultRequestDirector tryExecute
INFO: I/O exception (java.net.SocketException) caught when processing request: Connection reset
1 mars 2013 17:34:10 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 :
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 ! :)
A voir également:
- Erreur impossible à gérer
- Gerer stockage google - Guide
- Gérer les applications au démarrage - Guide
- Gerer les profils netflix - Guide
- Erreur lors de l'enregistrement du contact - Forum Xiaomi
- Erreur t32 ✓ - Forum Livebox
3 réponses
bonjour,
bon je ne suis pas confirmé en java, mais je sais bien que lorsqu'on veule modifier les message d'erreur, il faut utiliser "throws", par exemple:
try
{
code résussie;
}catch(Exception e)
{
throw new Exception("Le site n'est pas disponible");
}
System.out.print(e.getMessage());
bon je ne suis pas confirmé en java, mais je sais bien que lorsqu'on veule modifier les message d'erreur, il faut utiliser "throws", par exemple:
try
{
code résussie;
}catch(Exception e)
{
throw new Exception("Le site n'est pas disponible");
}
System.out.print(e.getMessage());