Pengecualian untuk tindakan

Sebelumnya 1 2 3 4 Halaman 3 Berikutnya Halaman 3 dari 4

Contoh kumpulan pengecualian

Pada Gambar 1 Anda melihat empat jenis pengecualian yang dirancang untuk melakukan empat jenis tindakan, sebagai berikut:

  1. BusinessException : Telah terjadi kondisi luar biasa. Kondisi ini telah diramalkan dan dapat diperiksa dengan metode pemanggilan untuk tindakan segera.
  2. ParameterException : Data yang dimasukkan tidak memungkinkan pemrosesan yang benar. Pengguna harus diminta untuk memasukkan kembali data yang valid atau untuk mengubah kondisi di mana pemrosesan terjadi.
  3. TechnicalException : Masalah teknis seperti pernyataan SQL yang tidak valid telah terjadi. Operasi yang diminta tidak dapat dipenuhi. Pengguna harus menghubungi meja bantuan untuk penyelidikan atau mencoba layanan lain. Penggunaan aplikasi oleh pengguna lain tidak terpengaruh.
  4. CriticalTechnicalException : Masalah teknis seperti database crash telah terjadi. Dalam kondisi ini, seluruh aplikasi tidak dapat digunakan. Pengguna harus didorong untuk mencoba lagi nanti. Pengguna lain tidak boleh menggunakan aplikasi sampai diperbaiki.

Kumpulan pengecualian ini hanya satu contoh; banyak kumpulan pengecualian lainnya dapat didefinisikan dengan cara yang sama. Misalnya, TechnicalExceptiondan CriticalTechnicalExceptiondapat dirancang sebagai kelas pengecualian tunggal dengan severityatribut boolean . Yang penting adalah fokus pada jenis tindakan yang harus diambil, bukan pada masalah yang memunculkan pengecualian.

Pengecualian logging

Meskipun semantik pengecualian fokus pada tindakan yang akan diambil, masalah yang telah diangkat juga penting. Misalnya, tim pengembangan dapat menggunakan informasi ini untuk men-debug kode. Dalam desain pengecualian saya, informasi tentang penyebab pengecualian dapat ditemukan di file log kesalahan aplikasi. Dengan kerangka kerja logging yang baik, seharusnya cukup mencatat informasi tentang masalah dari pesan pengecualian dan pelacakan tumpukan.

Satu-satunya masalah yang tersisa di bagaimana merancang pengecualian sehingga informasi ini dapat dengan mudah diambil. Salah satu solusinya adalah memberikan pengecualian dengan atribut id yang mewakili jenis masalah yang dihadapi. Selain itu, jika masalah telah memunculkan pengecualiannya sendiri, pengecualian ini dapat disarangkan ke dalam pengecualian aplikasi. Pada waktu penangkapan, pesan asli dan pelacakan tumpukan dapat diambil dari pengecualian bertingkat. The id atribut dan pengecualian bersarang dua cara untuk memasukkan informasi masalah-terkait di pengecualian itu sendiri.

Mendesain aliran pengecualian

Setelah Anda merancang pengecualian itu sendiri, langkah selanjutnya adalah memikirkan tentang bagaimana pengecualian itu akan mengalir melalui aplikasi Anda. Arsitektur aplikasi JEE standar terutama terdiri dari empat paket: presentasi, bisnis, integrasi, dan persistensi. Pengecualian biasanya diberikan oleh paket integrasi dan persistensi. Dalam paket bisnis, lapisan runtime bagian dalam menangkap pengecualian yang diperiksa sesegera mungkin, sedangkan lapisan luar menangkap pengecualian waktu proses dan mengambil tindakan yang sesuai sesuai dengan kelasnya. Anda juga dapat membuang dan menangkap beberapa pengecualian yang dicentang di dalam paket bisnis. Dalam skema ini, tanggung jawab paket integrasi dan ketekunan, serta lapisan dalam paket bisnis, adalah mengubah pengecualian waktu proses menjadi tindakan.Arsitektur aplikasi JEE yang khas seperti ini ditunjukkan pada Gambar 2.

Jalur pengecualian yang muncul dari paket persistensi (misalnya) bergantung pada tempat masalah dapat diselesaikan. Jika metode panggilan dapat menyelesaikan masalah, pengecualian segera ditangkap, tindakan yang tepat diambil, dan bisnis berjalan normal. Jika masalah tidak dapat diselesaikan, pengecualian tersebut disarangkan ke dalam pengecualian waktu proses dan diteruskan secara diam-diam melalui lapisan perantara paket bisnis ke lapisan atas aplikasi. Dalam lapisan ini, biasanya oleh beberapa jenis pengontrol aplikasi, pengecualian waktu proses ditangkap, tindakan yang sesuai diambil, dan lapisan presentasi menampilkan pesan kesalahan yang sesuai kepada pengguna. Penangkapan langsung pengecualian yang dicentang dan penangkapan akhir pengecualian waktu proses adalah dua skenario utama dalam jenis desain pengecualian ini, seperti yang ditunjukkan pada Gambar 3.