Amalan Kontroversial Kawalan Aliran di Akhirnya Blok di Jawa
Adalah dipercayai secara meluas bahawa termasuk penyata pemulangan atau bentuk kawalan aliran lain dalam blok akhirnya di Jawa adalah amalan yang meragukan. Namun, di sebalik konsensus umum ini, keadaan tertentu mungkin memerlukan penggunaannya.
Satu contoh yang menarik timbul daripada situasi di mana pengecualian berlaku dalam tahap kod yang lebih mendalam, tetapi mesti disebarkan ke atas. Pertimbangkan coretan kod berikut:
Object problemMethod() { Object rtn = null; try { rtn = somethingThatThrewAnException(); } finally { doSomeCleanup(); return rtn; } }
Dalam keadaan ini, pengecualian tidak ditangkap yang berlaku dalam kaedah somethingThatThrewAnException sedang dilemparkan semula. Walau bagaimanapun, penyataan pemulangan dalam blok akhirnya secara pramatang membatalkan proses penyebaran pengecualian, menghalangnya daripada mencapai pemanggil Kaedah masalah.
Senario ini menyerlahkan potensi bahaya penamatan penyebaran pengecualian secara pramatang. Walaupun secara teknikal dibenarkan untuk menggunakan kawalan aliran dalam blok akhirnya, ia harus dielakkan demi kebolehbacaan dan kebolehselenggaraan kod. Pengecualian hendaklah sentiasa dikendalikan dan disebarkan dengan sewajarnya, dan bergantung pada akhirnya blok untuk tujuan ini boleh membawa kepada tingkah laku yang tidak dijangka dan berbelit-belit.
Atas ialah kandungan terperinci Sekiranya Anda Menggunakan Kawalan Aliran dalam Blok Akhirnya Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!