Pengecualian untuk tindakan

Sebelumnya 1 2 3 4 Halaman 3 Seterusnya Halaman 3 daripada 4

Set pengecualian sampel

Dalam Gambar 1 anda melihat empat jenis pengecualian yang dirancang untuk melakukan empat jenis tindakan, seperti berikut:

  1. BusinessException : Keadaan luar biasa telah berlaku. Keadaan ini telah diramalkan dan dapat diperiksa dengan kaedah panggilan untuk tindakan segera.
  2. ParameterException : Data yang dimasukkan tidak memungkinkan untuk memproses dengan betul. Pengguna mesti diminta memasukkan semula data yang sah atau mengubah keadaan di mana pemprosesan berlaku.
  3. TechnicalException : Masalah teknikal seperti pernyataan SQL yang tidak betul telah berlaku. Operasi yang diminta tidak dapat dipenuhi. Pengguna harus menghubungi meja bantuan untuk siasatan atau mencuba perkhidmatan lain. Penggunaan aplikasi oleh pengguna lain tidak terjejas.
  4. CriticalTechnicalException : Masalah teknikal seperti kerosakan pangkalan data telah berlaku. Dalam keadaan ini, keseluruhan aplikasi tidak dapat digunakan. Pengguna harus digalakkan untuk mencuba kemudian. Pengguna lain tidak boleh menggunakan aplikasi tersebut sehingga ia telah diperbaiki.

Kumpulan pengecualian ini hanya satu contoh; banyak set pengecualian lain dapat didefinisikan sama. Sebagai contoh, TechnicalExceptiondan CriticalTechnicalExceptionboleh dirancang sebagai kelas pengecualian tunggal dengan severityatribut boolean . Yang penting adalah memusatkan perhatian pada jenis tindakan yang harus diambil, dan bukan pada isu yang menimbulkan pengecualian.

Pembalakan pengecualian

Walaupun pengecualian semantik memusatkan perhatian pada tindakan yang harus diambil, isu yang dibangkitkan juga penting. Pasukan pengembangan boleh, misalnya, menggunakan maklumat ini untuk menyahpepijat kod tersebut. Dalam reka bentuk pengecualian saya, maklumat mengenai penyebab pengecualian terdapat dalam fail log ralat aplikasi. Dengan rangka kerja pembalakan yang baik, memadai untuk mencatat maklumat mengenai masalah tersebut dari pengecualian mesej dan jejak timbunan.

Satu-satunya masalah yang masih ada adalah bagaimana merancang pengecualian supaya maklumat ini dapat diambil dengan mudah. Salah satu penyelesaiannya ialah memberikan pengecualian dengan atribut id yang mewakili jenis masalah yang dihadapi. Selain itu, jika masalah tersebut menimbulkan pengecualiannya sendiri, pengecualian ini dapat dimasukkan ke dalam pengecualian aplikasi. Pada waktu menangkap, mesej asal dan jejak timbunan dapat diambil dari pengecualian bersarang. The id atribut dan pengecualian bersarang dua cara untuk memasukkan maklumat isu berkaitan dalam pengecualian itu sendiri.

Merancang aliran pengecualian

Sebaik sahaja anda merancang pengecualian itu sendiri, langkah seterusnya adalah memikirkan bagaimana pengecualian akan melalui aplikasi anda. Senibina aplikasi JEE standard terdiri daripada empat pakej: persembahan, perniagaan, integrasi, dan kegigihan. Pengecualian biasanya dilancarkan oleh paket integrasi dan kegigihan. Dalam pakej perniagaan, lapisan runtime dalaman menangkap pengecualian yang diperiksa secepat mungkin, sementara lapisan luar menangkap pengecualian runtime dan mengambil tindakan yang sesuai sesuai dengan kelasnya. Anda juga boleh membuang dan menangkap beberapa pengecualian yang diperiksa di dalam pakej perniagaan. Dalam skema ini, tanggungjawab pakej integrasi dan ketekunan, serta lapisan dalaman pakej perniagaan, adalah mengubah pengecualian runtime menjadi tindakan.Senibina aplikasi JEE khas seperti ini ditunjukkan dalam Rajah 2.

Jalan pengecualian yang dilemparkan dari pakej ketekunan (misalnya) bergantung pada di mana masalah itu dapat diselesaikan. Sekiranya kaedah panggilan dapat menyelesaikan masalah, pengecualian segera diambil, tindakan yang sesuai diambil, dan perniagaan berjalan seperti biasa. Sekiranya masalah itu tidak dapat diselesaikan, pengecualian tersebut terletak pada pengecualian runtime dan diteruskan secara senyap melalui lapisan perantaraan pakej perniagaan ke lapisan atas aplikasi. Dalam lapisan ini, biasanya oleh beberapa jenis pengawal aplikasi, pengecualian runtime ditangkap, tindakan yang sesuai diambil, dan lapisan presentasi memaparkan pesan ralat yang sesuai kepada pengguna. Penangkapan segera pengecualian yang diperiksa dan penangkapan pengecualian jangka masa yang lewat adalah dua senario utama dalam reka bentuk pengecualian seperti ini, seperti yang ditunjukkan pada Gambar 3.