Hola estoy creando un programa que toma proxys de varios sitios pero tengo un problema supongamos que cargo la lista de sitios en un JtextArea despues con un try y catch hago lo siguiente:
try{
//Almacenamos Area de Texto en una String
String todo = jTextArea1.getText().
replaceAll("https", "http");
//usamos st para separar por espacio cada url y leer 1 por 1
StringTokenizer st = new StringTokenizer(todo, "\n");
//Recorremos Urls
while (st.hasMoreTokens()) {
URL url = new URL(st.nextToken());
//Almacenamos Buffer
BufferedReader brd = new BufferedReader(new InputStreamReader(url.openStream()));
//Guardamos Resultado de Buffer
linea = brd.readLine();
//Leemos respuesta
StringBuffer respuesta = new StringBuffer();
while (linea != null) {
respuesta = respuesta.append(linea);
linea = brd.readLine();
}
//Definimos lo que vamos a buscar
pattern = "([0-9]{1,4}\\.)+[0-9]{1,4}\\:[0-9]{1,4}";
//definimos matcher y lo convertimos a String
matcher = Pattern.compile(pattern).matcher(respuesta.toString());
//Decimos a matcher que empieze a buscar
while (matcher.find()) {
resultado = matcher2.group().
//Definimos que deseamos remover
replaceAll("javascript:.*", "").
replaceAll("l0k9j8h7-87f3c96803f53f1496a6de3:.*", "").
replaceAll("mailto:.*", "")
+ "\n";
hs.add(resultado);
}
//Creamos un iterator para poder reccorer el HashSet
java.util.Iterator<String> it = hs.iterator();
//Recorremos iterator hasta el final
while (it.hasNext()) {
//Añadimos lo que tiene el iterator
jTextArea2.append(it.next());
//Limpiamos Iterator
it.remove();
}
//Limpiamos Hash Set
hs.clear();
} catch (Exception e2) {
//Mostramos Mensaje si la pagina no funciona
System.out.println("No Funciona la pagina");
}
Ahora el problema que tengo es que supongamos que una pagina no carga o esta caida, el programa se termina y no continua con la lista espero me puedan ayudar mi pregunta es como puedo continuar con la lista de sitios del programa aunque alguna pagina este mal saludos y gracias por su ayuda :D
No pongas el Try-Catch ahi sacalo, ponelo dentro del bucle While donde recorres las Urls, cosa que si da error sigue con la otra. Despues seguira haciendo cosas con las que andan.
Cita de: $Edu$ en 22 Diciembre 2012, 15:18 PM
No pongas el Try-Catch ahi sacalo, ponelo dentro del bucle While donde recorres las Urls, cosa que si da error sigue con la otra. Despues seguira haciendo cosas con las que andan.
Hola.
Así es, estás utilizando el Try/Catch de forma muy general, si falla algo, esté donde esté el programa ejecutándose se abortará.
Para solucionarlo debes poner el bloque try/catch dentro del bucle " while (st.hasMoreTokens()) {" de modo que si falla uno, continúe con el siguiente y no se aborte todo el proceso.
Muchas gracias por su ayuda nunca hubiera dado con el error llevo muy poco en java y no encontraba la forma muchas gracias a los 2 ;-) ;-)