Sebab Nilai Pulangan Tidak Berubah
Dalam pernyataan cuba-akhir, pelaksanaan blok cuba diakhiri dengan pelaksanaan penyata pulangan. Pada ketika ini, nilai pembolehubah s yang dikembalikan oleh kaedah ialah nilai s pada masa pernyataan pulangan dilaksanakan.
Walaupun klausa akhirnya mengubah suai nilai s kemudian, ia akan tidak mengubah nilai pulangan kaedah selepas penyataan pulangan telah dilaksanakan.
Objek Tidak Boleh Berubah vs Boleh Berubah
Perlu ambil perhatian bahawa tingkah laku ini terpakai apabila mengubah suai nilai secara langsung s sendiri dalam blok akhirnya. Walau bagaimanapun, jika s merujuk objek boleh ubah (yang String bukan), mengubah suai kandungan objek dalam blok akhirnya akan ditunjukkan dalam nilai yang dikembalikan.
Spesifikasi Undang-undang
Spesifikasi Bahasa Java (JLS) menyediakan garis panduan terperinci untuk operasi ini dalam Bahagian 14.20.2. Dalam bahagian ini, ia menyatakan bahawa pernyataan pulangan dalam blok cubaan merupakan penamatan secara tiba-tiba. Akibatnya, Seksyen 14.17 menerangkan bahawa pernyataan pemulangan secara tiba-tiba menamatkan pelaksanaan blok.
Pengendalian Pengecualian dan Penyata Pemulangan
Jika kedua-dua blok cuba dan akhirnya blok ditamatkan secara tiba-tiba kerana pemulangan penyataan, peraturan daripada §14.20.2 terpakai:
Akibat daripada peraturan ini ialah pernyataan pulangan dalam blok akhirnya menentukan nilai pulangan keseluruhan pernyataan cuba-akhir, mengatasi nilai pulangan daripada blok cuba. Fenomena yang serupa berlaku dalam pernyataan cuba-tangkap-akhirnya di mana pengecualian dilemparkan dalam blok cuba dan dikendalikan oleh blok tangkapan, dan kedua-dua blok tangkapan dan akhirnya mengandungi pernyataan pulangan.
Atas ialah kandungan terperinci Mengapa Penyata Pulangan dalam Blok Akhirnya Mengatasi Nilai Pulangan Blok Cuba?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!