The tryblok Rampungkan dengan pelaksanaan returnpernyataan dan nilai spada saat returnpernyataan mengeksekusi adalah nilai yang dikembalikan oleh metode ini. Fakta bahwa finallyklausa kemudian mengubah nilai s(setelah returnpernyataan selesai) tidak (pada saat itu) mengubah nilai kembali.
Perhatikan bahwa di atas berkaitan dengan perubahan nilai situ sendiri di finallyblok, bukan ke objek yang sdireferensikan. Jika sreferensi ke objek yang bisa berubah (yang Stringtidak) dan isi objek diubah di finallyblok, maka perubahan itu akan terlihat pada nilai yang dikembalikan.
Aturan terperinci untuk bagaimana semua ini beroperasi dapat ditemukan di Bagian 14.20.2 dari Spesifikasi Bahasa Jawa . Perhatikan bahwa eksekusi returnpernyataan diperhitungkan sebagai penghentian mendadak tryblok (bagian mulai " Jika eksekusi blok coba selesai tiba-tiba karena alasan lain R .... " berlaku). Lihat Bagian 14.17 dari JLS untuk alasan mengapa suatu returnpernyataan tiba-tiba merupakan penghentian blok.
Dengan perincian lebih lanjut: jika tryblok dan finallyblok try-finallypernyataan berakhir tiba-tiba karena returnpernyataan, maka aturan berikut dari §14.20.2 berlaku:
Jika eksekusi tryblok selesai tiba-tiba karena alasan lain R [selain melempar pengecualian], maka finallyblok dieksekusi, dan kemudian ada pilihan:
- Jika
finallyblok selesai secara normal, maka trypernyataan selesai tiba-tiba karena alasan R.
- Jika
finallyblok selesai tiba-tiba karena alasan S, maka trypernyataan lengkap tiba-tiba karena alasan S (dan alasan R dibuang).
Hasilnya adalah bahwa returnpernyataan di finallyblok menentukan nilai kembali seluruh try-finallypernyataan, dan nilai yang dikembalikan dari tryblok dibuang. Hal serupa terjadi dalam try-catch-finallypernyataan jika tryblok melempar pengecualian, ditangkap oleh catchblok, dan baik catchblok maupun finallyblok memiliki returnpernyataan.