General Articles

Belajar Dari Kesalahan

Penanganan Pesan Kesalahan dalam Pemrograman PHP

Secara umum (tidak hanya dalam pemrograman PHP), ketrampilan untuk membaca pesan kesalahan adalah modal yang sangat penting bagi seorang pemrogram. Tentunya akan sia-sia, jika sistem/program/aplikasi yang kita buat memberikan pesan kesalahan, namun karena kita tidak bisa 'membaca'-nya maka kita akan kebingungan sendiri dalam menyelesaikan kesalahan yang terjadi. Dalam artikel ini akan dijelaskan sedikit mengenai penanganan kesalahan dalam pemrograman PHP, mulai dari pengetahuan mengenai jenis-jenis pesan kesalahan, peng-konfigurasian sistem, cara membaca pesan kesalahan, dan contoh-contoh pesan kesalahan serta cara mengatasinya.

author : cahya dsn, published on : August 18th, 2017 updated on : July 23rd, 2020

minerva minerva donasi donation

Mau lihat artikel lainya? Dapatkan artikel-artikel lain seputar pemrograman website di sini, dan dapatkan ide-ide baru

2.1. Berkenalan Lebih Dekat

Ada sebanyak 16 (enam belas) tipe/jenis pesan kesalahan di PHP, beberapa yang sering dijumpai dalam pemrograman PHP secara umum adalah:

2.1.1. Fatal Errors

Fatal error terjadi ketika PHP mengerti kode yang telah ditulis, namun apa yang diminta oleh kode tidak dapat dilakukan. Fatal error akan menghentikan eksekusi script. Sebagai contohnya adalah jika kita mencoba untuk mengakses fungsi yang belum didefinisikan, maka outputnya adalah fatal error.

2.1.2. Warning Errors

Warning error tidak akan menghentikan eksekusi dari script. Alasan utama dari warning error yaitu menyertakan file yang tidak ada atau mengisikan jumlah parameter yang tidak sesuai jumlahnya saat memanggil suatu fungsi.

Peringatan (Warning) adalah pesan seperti "Anda melakukan sesuatu yang salah dan kemungkinan besar akan menyebabkan kesalahan kedepannya, jadi perbaiki."

2.1.3. Parse Errors (syntax errors)

Parse Error ini terjadi jika ada kesalahan sintaks dalam script dan pesan kesalahan akan muncul pada outputnya ketika dijalankan. Parse error akan menghentikan proses eksekusi script. Ada banyak alasan ketika terjadinya parse error di PHP. Alasan umum pada parse error adalah sebagai berikut:

  • Kutipan/string yang tidak ditutup
  • Kelebihan atau kekurangan tanda kurung
  • Kurung kurawal yang tidak ditutup
  • Kurang titik koma

2.1.4. Notice Errors

Notice error sama hal nya dengan Warning Error yaitu ketika terjadi notice error eksekusi script tidak akan berhenti. Notice Error akan terjadi misalnya ketika kita mencoba untuk mengakses variabel yang belum didefinisikan(undefined variable), konstanta yang belum didefinisikan (undefined constant), index yang tidak ada (undefined index) atau diluar jangkauan (undefined offset) dari suatu array

Pemberitahuan (Notice) adalah pesan nasehat seperti "Anda mungkin sebaiknya tidak melakukan apa yang Anda lakukan"

2.1.5. Daftar Tipe Kesalahan

Dan berikut ini adalah daftar selengkapnya keenambelas tipe/jenis pesan kesalahan di PHP:

TABEL 1 Konstanta Pesan Kesalahan
Nilai Konstanta Deskripsi Catatan
1 E_ERROR (integer) Fatal run-time errors. Ini menunjukkan kesalahan yang tidak dapat dipulihkan, seperti masalah alokasi memori. Proses eksekusi script akan menghentikan.  
2 E_WARNING (integer) Run-time warnings (non-fatal errors). Proses eksekusi script tidak akan menghentikan.  
4 E_PARSE (integer) Compile-time parse errors. Kesalahan sintak script yang dihasilkan saat parsing script  
8 E_NOTICE (integer) Run-time notices. Menandakan bahwa dalam script tersebut terdapat suatu indikasi kesalahan, meskipun masih dimungkinkan script berjalan secara normal  
16 E_CORE_ERROR (integer) Fatal errors yang muncul pada saat PHP diinisialisasi. Ini seperti halnya E_ERROR, namun pesan kesalahan ini dibangkitkan oleh core dari PHP.  
32 E_CORE_WARNING (integer) Warnings (non-fatal errors) yang muncul pada saat PHP diinisialisasi. Ini seperti halnya E_WARNING, namun pesan kesalahan ini dibangkitkan oleh core dari PHP  
64 E_COMPILE_ERROR (integer) Fatal compile-time errors. Ini seperti halnya E_ERROR, , namun pesan kesalahan ini dibangkitkan oleh Zend Scripting Engine.  
128 E_COMPILE_WARNING (integer) Compile-time warnings (non-fatal errors). Ini seperti halnya E_WARNING, namun pesan kesalahan ini dibangkitkan oleh Zend Scripting Engine.  
256 E_USER_ERROR (integer) User-generated error message. Ini seperti halnya E_ERROR, namun pesan kesalahan ini dihasilkan dari kode PHP dengan menggunakan fungsi PHP trigger_error().  
512 E_USER_WARNING (integer) User-generated warning message. Ini seperti halnya E_WARNING, namun pesan kesalahan ini dihasilkan dari kode PHP dengan menggunakan fungsi PHP trigger_error().  
1024 E_USER_NOTICE (integer) User-generated notice message. Ini seperti halnya E_NOTICE, namun pesan kesalahan ini dihasilkan dari kode PHP dengan menggunakan fungsi PHP trigger_error().  
2048 E_STRICT (integer) PHP menyarankan perubahan pada kode yang dibuat untuk memastikan interoperabilitas dan kompatibilitas terbaik kode tersebut. Sejak PHP 5 namun tidak termasuk dalam E_ALL sampai PHP 5.4.0
4096 E_RECOVERABLE_ERROR (integer) Catchable fatal error. Ini menunjukkan bahwa ada kemungkinan kesalahan berbahaya terjadi, namun tidak meninggalkan Engine dalam kondisi tidak stabil. Jika kesalahan tidak tertangkap oleh user defined handle -- penanganan kesalahan yang ditentukan pengguna -- , maka aplikasi dibatalkan karena merupakan E_ERROR. Sejak PHP 5.2.0
8192 E_DEPRECATED (integer) Run-time notices. Menandakan peringatan tentang kode yang tidak akan berfungsi di versi mendatang. Sejak PHP 5.3.0
16384 E_USER_DEPRECATED (integer) User-generated warning message. Ini seperti halnya E_DEPRECATED, namun pesan kesalahan ini dihasilkan dari kode PHP dengan menggunakan fungsi PHP trigger_error(). Sejak PHP 5.3.0
32767 E_ALL (integer) Semua pesan kesalahan dan peringatan yang didukung, kecuali level E_STRICT sebelum PHP 5.4.0. 32767 di PHP 5.4.x,
30719 di PHP 5.3.x,
6143 di PHP 5.2.x,
2047 versi sebelumnya

2.2. Berkawan atau Memusuhi ?

menampilkan vs menyembunyikan pesan kesalahan - tbd

Sekarang setelah kita mengetahui tipe kesalahan seperti apa yang akan dihasilkan PHP, kita perlu mengembangkan sebuah rencana untuk berurusan dengan pesan kesalahan tersebut -- disaat pesan kesalahan tersebut muncul. PHP menyediakan empat pilihan untuk penanganan kesalahan sesuai dengan tipe-tipe kesalahaan dan konfigurasi error_reporting dari PHP; yaitu:

  • menampilkannnya
  • mencatatnya
  • mengabaikannya
  • membuat tindakan khusus terhadapnya

Pesan kesalahan yang muncul adalah sebagai petunjuk awal untuk menangani kesalahan dalam pemrograman PHP. Jika kita tahu dan paham maksud dari pesan kesalahan yang di tampilkan, maka diharapkan penanganan dan penyelesaian kesalahannya akan tepat dan sesuai yang diharapkan. Berikut ini adalah beberapa hal dasar yang perlu diperhatikan dalam membaca pesan kesalahan PHP:

3.1. Yang Pertama yang Utama

Seperti kita ketahui PHP adalah bahasa pemrograman yang bertipe interpreter, karenanya kode program yang kita tulis akan dibaca oleh PHP dari baris pertama hingga terakhir secara berurut. Berdasarkan fakta ini, jika muncul beberapa pesan kesalahan dalam kode PHP yang kita buat, yang perlu pertama kali kita perhatikan adalah pesan kesalahan yang pertama kali muncul (paling awal/atas). Mengapa? karena bisa jadi pesan-pesan kesalahan yang berikutnya adalah muncul dari akibat kesalahan yang pertama tersebut. Hal ini terutama jika pesan kesalahan yang pertama muncul adalah bertipe warning atau notice, karena script akan tetap dijalankan jika menemui kesalahan bertipe ini.

3.2. Mengenali Pesan Kesalahan

Secara garis besar, pesan kesalahan dalam PHP ditampilkan dalam format :

<tipe kesalahan> : <pesan kesalahan> <nama file/berkas> <nomor baris>

Keterangan:

  • <tipe kesalahan> :
  • <pesan kesalahan> :
  • <nama file/berkas> :
  • <nomor baris> :

- tbd

3.3. Mencari Jawab atas Pertanyaan

- tbd

4.1. Kesalahan yang Tak Termaafkan

Fatal Error - tbd

4.2. Bahasa yang Dimengerti

Syntax Error - tbd

4.3. Terima Kasih Sudah Diingatkan

Warning Error - tbd

4.4. Sebuah Nasehat

Notice Error - tbd

4.5. Saatnya Membuang yang Lama

Deprecated Error - tbd

5.1. Penanganan Kesalahan oleh PHP

- tbd

5.2. Penanganan Kesalahan oleh Pengguna (User)

- tbd

5.3. Fungsi-fungsi untuk Penanganan Kesalahan

- tbd

  1. PHP documentation : Errors , http://id1.php.net/manual/en/language.errors.php
  2. PHP documentation : Error Handling, http://id1.php.net/manual/en/book.errorfunc.php
  3. PHP documentation : Error Handling - Predefined Constants, http://id1.php.net/manual/en/errorfunc.constants.php