Finalmente, como parte do manuseio de exceção, ele só pode ser usado nas instruções Try/Catch e vem com um bloco de declaração, indicando que essa declaração será executada (independentemente de uma exceção ser lançada ou não) e é frequentemente usada quando os recursos precisam ser divulgados.
Antes, ao escrever rastreadores, a frequência de conexão do banco de dados era muito alta. Às vezes, os dados não eram bem processados. Depois que o erro SQL foi relatado, uma exceção foi lançada, mas a conexão subsequente do banco de dados não foi desconectada. Isso resultou no final de que o número de conexões de banco de dados era muito grande e não é mais permitido conectar (porque era uma biblioteca pessoal, reiniciei diretamente). Esta operação de liberação da conexão do banco de dados pode ser executada finalmente.
Primeiro, vamos dar uma olhada no código que não está finalmente (ele não pode ser executado diretamente, apenas entenda o que significa)
Conexão conn; instrument sTmt; tente {conn = driverManager.getConnection (url, nome de usuário, senha); stmt = Conn.Createstatement; String sql = "sql"; // sql stmt.executeUpdate (sql); stmt.close (); Conn.Close ();} Catch (Exceção e) {E.PrintStackTrace ();}Quando o programa está em execução normalmente, nenhuma exceção é lançada, sem problemas.
No entanto, quando o programa lança uma exceção (ocorre o erro do SQL), a instrução no TRY não é executada e a instrução no CATCH é executada diretamente, o que faz com que uma conexão com o banco de dados não seja fechada normalmente. Se a quantidade de dados se tornar maior, o número máximo de conexões no banco de dados atinge o limite superior e novas conexões não serão mais permitidas.
Então a utilidade de finalmente pode ser refletida agora
Conexão conn = null; instrução stmt = null; tente {conn = driverManager.getConnection (url, nome de usuário, senha); stmt = Conn.Createstatement; String 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 (); }} Dessa forma, mesmo se o SQL executar um erro e lançar uma exceção e, em seguida, faça outro julgamento na conexão do banco de dados no código final, ele pode garantir que os recursos de conexão do banco de dados não sejam desperdiçados sem motivo.
O exposto acima é o uso de finalmente em Java apresentado a você pelo editor. Espero que seja útil para você. Se você tiver alguma dúvida, deixe -me uma mensagem e o editor responderá a você a tempo. Muito obrigado pelo seu apoio ao site wulin.com!