最後に、例外処理の一環として、Try/Catchステートメントでのみ使用でき、ステートメントブロックが付属しており、このステートメントが最終的に実行されることを示します(例外がスローされているかどうかに関係なく)、リソースをリリースする必要がある場合によく使用されます。
以前は、クローラーを書くとき、データベース接続周波数は非常に高かった。データがうまく処理されなかった場合があります。 SQLエラーが報告された後、例外がスローされましたが、後続のデータベース接続は切断されませんでした。これにより、データベース接続の数が大きすぎて接続が許可されなくなったことが最終的になりました(個人的なライブラリだったため、直接再起動しました)。データベース接続をリリースするこの操作は、最終的に実行できます。
まず、最終的にはないコードを見てみましょう(直接実行することはできません。それが何を意味するのかを理解してください)
Connection Conn; statement stmt; try {conn = drivermanager.getConnection(url、username、password); stmt = conn.createStatement;文字列sql = "sql"; // sql stmt.executeupdate(sql); stmt.close(); conn.close();} catch(例外e){e.printstacktrace();}プログラムが正常に実行されている場合、例外がスローされず、問題ありません。
ただし、プログラムが例外をスローすると(SQLエラーが発生します)、TRYのステートメントは実行されず、CACTのステートメントが直接実行され、データベース接続が正常に閉じられません。データの量が大きくなると、データベース内の接続の最大数が上限に達し、新しい接続が許可されなくなります。
次に、最終的には反映されます
接続conn = null;ステートメントstmt = null; try {conn = drivermanager.getConnection(url、username、password); stmt = conn.createStatement;文字列sql = "sql"; // sql stmt.executeupdate(sql); stmt.close(); conn.close(); } catch(sqlexception e){e.printstacktrace(); }最後に{if(stmt!= null){stmt.close(); } if(conn!= null){conn.close(); }}このようにして、SQLがエラーを実行して例外をスローしてから、最終コードのデータベース接続について別の判断を下したとしても、理由もなくデータベース接続リソースが無駄にならないようにすることができます。
上記は、編集者が紹介したJavaでの最終的に使用されることです。それがあなたに役立つことを願っています。ご質問がある場合は、メッセージを残してください。編集者は時間内に返信します。 wulin.comのウェブサイトへのご支援ありがとうございます!