Yii menyediakan kerangka kerja penanganan error yang lengkap berdasarkan pada mekanisme exception PHP 5. Saat aplikasi dibuat untuk menangani permintaan pengguna yang masuk, ia meregistrasi metode handleError untuk menangani peringatan dan pemberitahuan PHP; dan meregistrasi metode handleException guna menangani exception PHP yang tidak tertangkap. Konsekuensinya, jika peringatan/pemberitahuan PHP atau exception yang tidak tertangkap terjadi selama eksekusi aplikasi, salah satu pengendali error akan mengambil alih kontrol dan memulai prosedur penanganan error tertentu. Show Table of Contents
Secara default, handlerError (atau handleException) akan memunculkan event onError (atau event onException). Jika error (atau exception) tidak ditangani oleh pengendali event manapun, ia akan memanggil bantuan dari komponen aplikasi errorHandler. 1. Memunculkan Exception ¶Memunculkan exception dalam Yii tidak berbeda dengan memunculkan exception normal PHP. Anda menggunakan sintaks berikut untuk memunculkan exception bila diperlukan: throw new ExceptionClass('ExceptionMessage'); Yii mendefinisikan tiga kelas exception: CException, CDbException dan CHttpException. CException adalah kelas exception generik. CDbException mewakiliki exception yang diakibatkan oleh operasi berhubungan dengan DB. CHttpException merupakan exception yang harus ditampilkan kepada pengguna akhir dan membawa sebuah properti statusCode mewakili status kode HTTP Kelas exception menentukan bagaimana ia harus ditampilkan, seperti yang akan dijelaskan nanti.
// jika ID tulisan tidak benar
throw new CHttpException(404,'The specified post cannot be found.'); 2. Menampilkan error ¶Ketika error dioperkan ke komponen aplikasi CErrorHandler, ia memilih tampilan yang sesuai untuk menampilkan error. Jika error bertujuan untuk ditampilkan kepada pengguna akhir, seperti misalnya CHttpException, ia akan menggunakan tampilan bernama
CErrorHandler mencari file tampilan terkait untuk sebuah tampilan dengan urutan sebagai berikut:
Oleh karena
itu, jika kita ingin mengkustomisasi tampilan error, kita cukup membuat file tampilan error di bawah direktori tampilan sistem pada aplikasi atau tema Anda. Setiap file tampilan adalah skrip PHP normal yang berisi kode HTML. Untuk lebih jelasnya, silahkan merujuk ke file tampilan standar framework di bawah direktori 3. Penanganan Error dengan Penggunaan Action ¶Yii memungkinkan kita menggunakan sebuah action dari controller untuk menangani tugas penampilan error. Untuk itu, kita harus mengatur error handler(penanganan error) dalam konfigurasi aplikasi: return array(
......
'components'=>array(
'errorHandler'=>array(
'errorAction'=>'site/error',
),
),
); Pada kode di atas, kita mengkonfigurasi properti CErrorHandler::errorAction untuk menjadi rute Kita dapat menulis action public function actionError()
{
if($error=Yii::app()->errorHandler->error)
$this->render('error', $error);
} Pada action, kita pertama mengambil informasi error yang detail dari
CErrorHandler::error. Jika properti tersebut tidak kosong, kita akan menampilkan view
4. Pencatatan Message(Pesan) ¶Pesan tingkat Apa itu exception pada PHP?Exception secara bahasa berarti pengecualian. Sedangkan secara istilah di dalam PHP, ia adalah sebuah perubahan alur program dari kondisi normal ke kondisi tertentu (atau pengecualian tertentu) jika terjadi suatu error (exception). Apa saja yang bisa dilakukan untuk penanganan exception?Terdapat dua cara untuk menangani Exception yaitu dengan menangkap Exception dan melempar Exception. Lakukan penanganan exception dengan menangkap Exception menggunakan blok try-catch. Berilah penjelasan (apakah program termasuk unchecked exceptions atau checked exceptions) ! Versi PHP manakah yang memperkenalkan try catch exception?Beberapa exception yang ada di PHP contohnya adalah try dan catch. Exception diperkenalkan di PHP versi 5, ketika penanganan kesalahan standar terbukti tidak cukup untuk kasus-kasus tertentu. Fungsi utama yang digunakan untuk menangani Exception adalah PHP try catch and throw. |