Panggilan Mage::throwException
itu digunakan untuk melemparkan pengecualian dari Mage_Core_Exception
varietas tertentu . Ini umumnya digunakan untuk menyajikan pesan kesalahan kepada pengguna akhir. Untuk contoh ini, lakukan pencarian cepat Mage::throwException
di modul Mage_Checkout, Anda akan menemukan banyak contoh di mana pesan kesalahan sebenarnya sedang diterjemahkan sebelum dilemparkan, karena pada akhirnya akan ditambahkan ke objek sesi dan ditampilkan kepada pengguna di halaman yang dihasilkan.
Menggunakan new Exception
atau sesuatu seperti new My_Custom_Exception
biasanya akan menjadi tempat Anda melemparkan kesalahan internal ke aplikasi, kesalahan yang kemungkinan besar tidak boleh ditampilkan kepada pengguna akhir. Mungkin Anda menangkap ini dan menanganinya dengan anggun (penggunaan yang baik untuk jenis pengecualian khusus dalam beberapa kasus), atau di lain waktu mereka berakhir tertangkap, dicatat dan diakhiri permintaan dengan pesan kesalahan yang lebih umum ditampilkan kepada pengguna.
Saya tidak pernah secara pribadi menggunakan Mage::exception
tetapi tampaknya merupakan upaya untuk pola memiliki tipe pengecualian unik untuk setiap modul. Tidak akan ada salahnya dilakukan dalam menggunakannya, karena pada dasarnya ini adalah pabrik yang mengembalikan contoh pengecualian untuk modul yang diberikan, meskipun (pada saat penulisan ini) tidak menerapkan dukungan untuk hal-hal seperti penimpaan.