Akhirnya sebagai bagian dari penanganan pengecualian, itu hanya dapat digunakan dalam pernyataan TRY/Catch, dan dilengkapi dengan blok pernyataan, menunjukkan bahwa pernyataan ini pada akhirnya akan dieksekusi (terlepas dari apakah pengecualian dilemparkan atau tidak), dan sering digunakan ketika sumber daya perlu dirilis.
Sebelumnya, saat menulis crawler, frekuensi koneksi basis data sangat tinggi. Terkadang data tidak diproses dengan baik. Setelah kesalahan SQL dilaporkan, pengecualian dilemparkan tetapi koneksi basis data berikutnya tidak terputus. Ini mengakibatkan akhir bahwa jumlah koneksi basis data terlalu besar dan tidak lagi diizinkan untuk terhubung (karena itu adalah perpustakaan pribadi, saya langsung memulai ulang). Operasi pelepasan koneksi basis data ini dapat dilakukan di akhirnya.
Pertama, mari kita lihat kode yang tidak pada akhirnya (itu tidak dapat dijalankan secara langsung, hanya memahami apa artinya)
Koneksi conn; pernyataan stmt; coba {conn = driverManager.getConnection (url, username, kata sandi); stmt = conn.createStatement; String sql = "sql"; // sql stmt.executeupdate (sql); stmt.close (); conn.close ();} catch (Exception e) {e.printstacktrace ();}Ketika program berjalan secara normal, tidak ada pengecualian yang dilemparkan, tidak ada masalah.
Namun, ketika program melempar pengecualian (kesalahan SQL terjadi), pernyataan dalam coba tidak dieksekusi dan pernyataan dalam tangkapan dieksekusi secara langsung, yang menyebabkan koneksi database tidak ditutup secara normal. Jika jumlah data menjadi lebih besar, jumlah maksimum koneksi dalam database mencapai batas atas, dan koneksi baru tidak lagi diizinkan.
Maka kegunaan akhirnya bisa tercermin sekarang
Koneksi conn = null; pernyataan stmt = null; coba {conn = driverManager.getConnection (url, nama pengguna, kata sandi); stmt = conn.createStatement; String sql = "sql"; // sql stmt.executeupdate (sql); stmt.close (); conn.close (); } catch (sqlexception e) {e.printstacktrace (); } akhirnya {if (stmt! = null) {stmt.close (); } if (conn! = null) {conn.close (); }} Dengan cara ini, bahkan jika SQL menjalankan kesalahan dan melempar pengecualian, dan kemudian membuat penilaian lain pada koneksi database dalam kode akhir, itu dapat memastikan bahwa sumber daya koneksi basis data tidak akan terbuang tanpa alasan.
Di atas adalah penggunaan akhirnya di Java yang diperkenalkan kepada Anda oleh editor. Saya harap ini akan membantu Anda. Jika Anda memiliki pertanyaan, silakan tinggalkan saya pesan dan editor akan membalas Anda tepat waktu. Terima kasih banyak atas dukungan Anda ke situs web Wulin.com!