Finalmente, como parte del manejo de excepciones, solo se puede usar en las declaraciones de prueba/captura, y viene con un bloque de declaración, lo que indica que esta declaración eventualmente se ejecutará (independientemente de si se lanza o no una excepción), y a menudo se usa cuando los recursos deben liberarse.
Antes, al escribir rastreadores, la frecuencia de conexión de la base de datos era muy alta. A veces los datos no se procesaban bien. Después de que se informó el error SQL, se lanzó una excepción, pero la conexión de base de datos posterior no se desconectó. Esto dio como resultado el final de que el número de conexiones de bases de datos era demasiado grande y ya no se le permitía conectarse (porque era una biblioteca personal, reinicié directamente). Esta operación de liberar la conexión de la base de datos se puede realizar finalmente.
Primero, echemos un vistazo al código que no es finalmente (no se puede ejecutar directamente, solo comprende lo que significa)
Connection Conn; Declaración stmt; try {conn = Drivermanager.getConnection (url, nombre de usuario, contraseña); stmt = conn.createstatement; Cadena sql = "sql"; // sql stmt.executeupdate (sql); stmt.close (); conn.close ();} Catch (Exception e) {E.PrintStackTrace ();}Cuando el programa se ejecuta normalmente, no se lanza la excepción, no hay problema.
Sin embargo, cuando el programa lanza una excepción (se produce un error SQL), la declaración en Try no se ejecuta y la declaración en Catch se ejecuta directamente, lo que hace que una conexión de base de datos no se cierre normalmente. Si la cantidad de datos se hace mayor, el número máximo de conexiones en la base de datos alcanza el límite superior, y ya no se permiten nuevas conexiones.
Entonces la utilidad de finalmente se puede reflejar ahora
Connection Conn = null; instrucción stmt = null; try {conn = drivermanager.getConnection (url, nombre de usuario, contraseña); stmt = conn.createstatement; Cadena sql = "sql"; // sql stmt.executeupdate (sql); stmt.close (); conn.close (); } Catch (Sqlexception e) {E.PrintStackTrace (); } finalmente {if (stmt! = null) {stmt.close (); } if (conn! = null) {conn.close (); }} De esta manera, incluso si SQL ejecuta un error y lanza una excepción, y luego hacer otro juicio sobre la conexión de la base de datos en el código final, puede garantizar que los recursos de conexión de la base de datos no se desperdicien sin motivo.
Lo anterior es el uso de finalmente en Java presentado por el editor. Espero que te sea útil. Si tiene alguna pregunta, déjame un mensaje y el editor le responderá a tiempo. ¡Muchas gracias por su apoyo al sitio web de Wulin.com!