Bloques Try Catch
Me gustaría saber cómo puedo utilizar variables del bloque try en el bloque catch.
Muchas gracias.
Muchas gracias.
Definí las variables fuera del bloque try..
Connection conn = null;
try {
conn = ds.getConnection();
.......
} catch(Exception e) {
if (conn != null) {
----hacer algo con conn
}
}
Connection conn = null;
try {
conn = ds.getConnection();
.......
} catch(Exception e) {
if (conn != null) {
----hacer algo con conn
}
}
Es lo que hago, envío el código para ver si sabes por qué me da error.
Me dice:
Error al ejecutar SQL en Actualización DELETE: No data found
void Actualizar_actionPerformed(ActionEvent e) {
Statement stmt = null;
ResultSet rs = null;
String s;
try {
stmt = con.createStatement();
rs = stmt.executeQuery("SELECT URL FROM ENLACES");
while (rs.next()){
s = "http://" + rs.getString("URL");
URL miURL = new URL(s);
URLConnection conexion = miURL.openConnection();
DataInputStream dis = new DataInputStream(conexion.getInputStream());
String inputLine;
while ((inputLine = dis.readLine()) != null) {
System.out.println(inputLine);
}
dis.close();
}
//Cerrar la conexión
rs.close();
stmt.close();
}
catch (MalformedURLException ex) {//Nueva URL() falla
System.err.println("Error al crear la URL: " + ex.getMessage());
}
catch(SQLException exc) {
System.err.println("Error al ejecutar SQL en Actualización SELECT: " + exc.getMessage());
}
catch (IOException ioe) {//openConnection() falla
try {
//Si no encuentra la página web
stmt.executeUpdate("DELETE FROM ENLACES WHERE URL = '" + rs.getString("URL") + "'");
System.out.println("La Base de Datos se ha actualizado correctamente.");
}
catch (SQLException exce) {
System.err.println("Error al ejecutar SQL en Actualización DELETE: " + exce.getMessage());
}
}
}
Me dice:
Error al ejecutar SQL en Actualización DELETE: No data found
void Actualizar_actionPerformed(ActionEvent e) {
Statement stmt = null;
ResultSet rs = null;
String s;
try {
stmt = con.createStatement();
rs = stmt.executeQuery("SELECT URL FROM ENLACES");
while (rs.next()){
s = "http://" + rs.getString("URL");
URL miURL = new URL(s);
URLConnection conexion = miURL.openConnection();
DataInputStream dis = new DataInputStream(conexion.getInputStream());
String inputLine;
while ((inputLine = dis.readLine()) != null) {
System.out.println(inputLine);
}
dis.close();
}
//Cerrar la conexión
rs.close();
stmt.close();
}
catch (MalformedURLException ex) {//Nueva URL() falla
System.err.println("Error al crear la URL: " + ex.getMessage());
}
catch(SQLException exc) {
System.err.println("Error al ejecutar SQL en Actualización SELECT: " + exc.getMessage());
}
catch (IOException ioe) {//openConnection() falla
try {
//Si no encuentra la página web
stmt.executeUpdate("DELETE FROM ENLACES WHERE URL = '" + rs.getString("URL") + "'");
System.out.println("La Base de Datos se ha actualizado correctamente.");
}
catch (SQLException exce) {
System.err.println("Error al ejecutar SQL en Actualización DELETE: " + exce.getMessage());
}
}
}
prueva usando esta sentencia depronto te sirva, esta es la forma que utilizo el delete
if (conn != null)
{
Statement stmt = conn.createStatement();
stmt = conn.createStatement();
stmt.addBatch("DELETE FROM ENLACES WHERE URL = '" + rs.getString("URL") + "'"); int[] updateCounts = stmt.executeBatch();
}
if (conn != null)
{
Statement stmt = conn.createStatement();
stmt = conn.createStatement();
stmt.addBatch("DELETE FROM ENLACES WHERE URL = '" + rs.getString("URL") + "'"); int[] updateCounts = stmt.executeBatch();
}