getinputstream - urlconnection java ejemplo
¿Cerrar URLConnection y InputStream correctamente? (1)
He visto muchos ejemplos diferentes de usar HttpURLConnection + InputStream y cerrarlos (o no cerrarlos) después de su uso. Esto es lo que se me ocurrió para asegurarme de que todo esté cerrado una vez terminado, ya sea que haya un error o no. ¿Es esto válido ?:
HttpURLConnection conn = null;
InputStream is = null;
try {
URL url = new URL("http://example.com");
// (set connection and read timeouts on the connection)
conn = (HttpURLConnection)url.openConnection();
is = new BufferedInputStream(conn.getInputStream());
doSomethingWithInputStream(is);
} catch (Exception ex) {
} finally {
if (is != null) {
try {
is.close();
} catch (IOException e) {
}
}
if (conn != null) {
conn.disconnect();
}
}
Gracias
Sí. Hacer la parte final finalmente sería la mejor idea, porque si el código falla en alguna parte, el programa no llegará hasta las sentencias .close()
, .disconnect()
que guardamos antes de las declaraciones catch ...
Si el código falla en alguna parte y se lanza una excepción en el medio del programa, finalmente se ejecutará independientemente de la excepción lanzada ...