Hola! tengo una duda respecto al video de "creando conexion" del bloque "finally y try with resources" en el curso de Java exceptions. En el video se muestra como creamos una class conexion, probamos la conexion, manejamos el error de IllegalState pero me quedo la duda de porque cuando en la clase TestConexion usamos el try catch, no dejamos FUERA de ese bloque el "con.cerrar()", se que el video va destinado para hacer de pie para el bloque de try-catch-finally, pero mas alla de eso, esta bien hacer como yo pense? dejar el "con.cerrar()" luego del catch fuera de su scope?
Caso 1: parte del video
public static void main(String[] args) {
Conexion conexion = new Conexion();
try {
conexion.leerDatos();
conexion.cerrar(); //Aqui cierra si NO encuentra una excepcion
}catch (IllegalStateException ex){
System.out.println("mensaje de excepcion");
ex.printStackTrace();
}
}
Caso 2: parte del video
public static void main(String[] args) {
Conexion conexion = new Conexion();
try {
conexion.leerDatos();
conexion.cerrar(); //Aqui cierra si NO encuentra una excepcion
}catch (IllegalStateException ex){
System.out.println("mensaje de excepcion");
ex.printStackTrace();
conexion.cerrar(); //Aqui cierra SI encuentra una excepcion
}
}
Caso 3: Mi solucion
public static void main(String[] args) {
Conexion conexion = new Conexion();
try {
conexion.leerDatos();
}catch (IllegalStateException ex){
System.out.println("mensaje de excepcion");
ex.printStackTrace();
}
conexion.cerrar(); //Aqui cierra, encuentre o no una excepcion
}
es una mala practica? o hay algun otro motivo del porque no se vio ese caso particular? de solucionar, soluciona el problema de cerrar la conexion