Penggunaan fungsi ASERTION pada PHP
Indonesian (Bahasa Indonesia) translation by Hisman Saputra (you can also view the original English article) Show Di posting ini, Kamu akan mempelajari bagaimana menggunakan penanganan exception di PHP. Mulai dari PHP5, kita dapat menggunakan blok try catch untuk penanganan error—ini adalah cara yang lebih baik untuk menangani exception dan mengontrol alur dari aplikasimu. Di artikel ini, kita akan membahas dasar-dasar dari penanganan exception beserta dengan beberapa contoh di dunia nyata. Apa itu Exception?PHP 5 memperkenalkan model error baru yang memungkinkan Kamu untuk melempar dan menangkap exception di aplikasimu—ini adalah cara yang lebih baik untuk menangani error daripada apa yang kita punya di versi PHP terdahulu. Semua exception merupakan instance dari base class Exception, yang dapat kita kembangkan untuk mengenalkan exception kustom kita sendiri. Perlu diperhatikan bahwa penanganan exception itu berbeda dengan penanganan error. Di penanganan error, kita dapat menggunakan fungsi Di sisi lain, exception adalah sesuatu yang dilempar dengan sengaja oleh kode, dan dia diharapkan akan ditangkap di beberapa tempat di dalam aplikasi Kamu. Jadi kita dapat mengatakan bahwa exception dapat dipulihkan berlawanan dengan error tertentu yang tidak dapat dipulihkan. Jika sebuah exception yang dilempar itu ditangkap di suatu tempat dalam aplikasi Kamu, pengeksekusian program berlanjut dari titik di mana exception ditangkap. Dan exception yang tidak tertangkap di manapun dalam aplikasimu menghasilkan sebuah error, sehingga menghentikan pengeksekusian program. Alur Kontrol Penanganan ExceptionMari kita lihat diagram berikut yang menampilkan alur kontrol penanganan exception secara umum. Exception dapat dilempar dan ditangkap dengan menggunakan blok try dan catch. Kamu bertanggung jawab melemparkan exception ketika sesuatu yang tidak diharapkan terjadi. Mari kita lihat dasar alur penanganan exception seperti yang ditampilkan di pseudo code berikut. // code before the try-catch block try { // code // if something is not as expected // throw exception using the "throw" keyword // code, it won't be executed if the above exception is thrown } catch (Exception $e) { // exception is raised and it'll be handled here // $e->getMessage() contains the error message } // code after the try-catch block, will always be executed Kebanyakan, ketika Kamu berurusan dengan exception, Kamu akan menggunakan pattern yang ditampilkan di potongan kode di atas. Kamu juga dapat menggunakan blok Blok Melemparkan ExceptionException mungkin dilempar oleh fungsi yang Kamu panggil, atau Kamu dapat menggunakan kata kunci Perlu diingat
bahwa jika Kamu melemparkan sebuah exception tetapi Kamu tidak mendefinisikan block Jika sebuah exception ditangkap oleh block Pada bagian selanjutnya, kita akan melihat contoh di dunia nyata untuk mengerti bagaimana penanganan exception bekerja. Contoh di Dunia NyataDi bagian ini, kita akan membuat contoh dunia nyata untuk mendemonstrasikan penanganan exception di PHP. Mari asumsikan bahwa Kamu membuat sebuah aplikasi yang memuat konfigurasi dari file config.php. Sekarang, ini penting bahwa file config.php harus ada ketika aplikasimu dibootstrap. Jadi, aplikasimu tidak dapat berjalan jika file config.php tidak ada. Sehingga ini adalah contoh kasus yang sempurna untuk melempar sebuah exception dan memberitahu pengguna bahwa mereka harus memperbaiki masalah ini. getMessage(); die(); } ?> Seperti yang Kamu lihat pada contoh di atas, kita akan mengecek keberadaan file config.php di awal fase bootstrap. Jika file config.php ditemukan, pengeksekusian dilanjutkan secara normal. Di sisi lain, kita akan melempar sebuah exception jika file config.php tidak ada. Kita juga bisa memberhentikan pengeksekusian jika ada exception. Jadi itu adalah bagaimana Kamu bisa menggunakan exception di aplikasimu. Kamu harus melempar exception untuk kasus-kasus yang istimewa—Kamu tidak perlu melempar exception untuk error-error umum seperti kedensial pengguna yang tidak valid, permisi dari direktori yang tidak sesuai, dll, yang Kamu tau akan sering terjadi. Hal-hal tersebut lebih baik ditangani oleh pesan error yang umum di normal alur pengeksekusian aplikasi. Jadi itu adalah contoh dari penanganan exception menggunakan class Bagaimana Membuat Kustom ExceptionDi bagian ini, kita akan membahas tentang bagaimana Kamu bisa membuat kustom exception di aplikasimu. Kita akan menambahkan contoh yang kita bahas di bagian sebelumnya untuk mendemonstrasikan kustom exception. Di contoh sebelumnya, kita melempar konfigurasi exception dengan menggunakan class Mari kunjungi kembali contoh sebelumnya seperti yang ditampilkan pada potongan kode berikut. getMessage(); // other additional actions that you want to carry out for this exception die(); } catch (Exception $e) { echo $e->getMessage(); die(); } ?> Pertama, kita mendefinisikan class Selanjutnya,
kita menggunakan kata kunci Yang pertama menangkap exception bertipe Blok FinallyDi bagian ini, kita akan membahas bagaimana menggunakan kata kunci Mari kita coba untuk mengerti dengan menggunakan contoh berikut try { // code // if something is not as expected // throw exception using the "throw" keyword // code, it won't be executed if the above exception is thrown } catch (Exception $e) { // exception is raised and it'll be handled here // $e->getMessage() contains the error message } finally { // code, it'll always be executed } Kode pada contoh di atas kurang lebih sama tetapi dengan tambahan blok Kasus tipikal yang kita dapat pikirkan dari penggunaan blok finally secara umum berhubungan dengan pembersihan sumber daya.
Contohnya, jika Kamu membuka koneksi ke database atau file di disk di dalam blok Penanganan exception adalah keterampilan koding utama dan Kamu harus memikirkan bagaimana exception di tangani ketika membangun aplikasimu. Ini akan membantumu untuk mendeteksi dan menyelamatkan dari error yang tidak terduga di aplikasimu. Saya harap posting ini akan menginspirasi Kamu untuk menulis kode penanganan error yang lebih baik! KesimpulanHari ini, kita membahas topik tentang penanganan exception di PHP. Di bagian pertama artikel, kita membahas dasar-dasar dari exception di PHP dan membuat contoh dunia nyata untuk mendemonstrasikan bagaimana mereka bekerja. Di bagian akhir, kita mengeksplor bagaimana membuat kustom exception dengan meng-extend class |