Rumah >Java >javaTutorial >Sekiranya Anda Menggunakan Kawalan Aliran dalam Blok Akhirnya Java?

Sekiranya Anda Menggunakan Kawalan Aliran dalam Blok Akhirnya Java?

Patricia Arquette
Patricia Arquetteasal
2024-12-24 13:34:25317semak imbas

Should You Use Flow Control in Java's Finally Blocks?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn