Membuat pesan error sendiri dengan php
Jangan kaget melihat pesan error diatas, itu hanya sebuah
ilustrasi pesan error yang dimunculkan oleh php
Pesan error yang sering kita temui
di lingkungan pemrograman php sangat beragam tergantung proses apa yang sedang
dilakukan. Contoh paling gampang seperti gagalnya melakukan koneksi database,
gagalnya menjalankan query, atau salahnya penggunaan sebuah function. Secara
mendasar memang semua error akan muncul dilayar tanpa diminta dengan format
seadanya (bawaan php). Bagaimana jika kita ingin membuat bentuk tampilan error
sendiri?? ini bisa kita lakukan selama yang salah bukan cara
penulisan phpnya.
Biasanya penanganan error dalam php
bisa dilakukan dengan menambahkan perintah :
die("Pesan
error")
pada setiap perintah yang rawan
dengan error. Akan tetapi kadang perintah itu kurang manjur sehingga error akan
tetap muncul seperti wujud aslinya seperti gambar yang ada diatas. Contoh
penggunaan die() :
mysql_query("select
* from tb_barang") or die("gagal : ".mysql_error());
Secara umum setiap error yang
terjadi dalam php akan mengembalikan beberapa nilai balik kepada
program/browser, yaitu :
- $number - yaitu nomor pesan error yang terjadi lihat referensi error
- $string - pesan keterangan error
- $file - nama file yang sedang dijalankan
- $line - nomor baris file yang sedang dijalankan
- $context - jenis pesan kesalahan
Dalam php tersedia yang namanya
fungsi set_error_handler ini digunakan untuk mengarahkan sebuah pesan
kesalahan yang terjadi. Dengan fungsi ini pula kita bisa melakukan antisipasi
apa yang akan dimunculkan jika terjadi kesalahan. Memang fungsi ini jarang
sekali digunakan karena kita umumnya mencoba memperbaiki kesalahan programnya.
Tapi pada kondisi tertentu, kesalahan tidak terkontrol karena belum ditemukan
pada saat pembuatan sehingga pesan akan muncul apa adanya. Ini sebenarnya
wajar, tapi dari segi pengembangan mungkin akan sulit karena yang menemui error
terkadang tidak kita langsung, jadi mengetahuinya lewat laporan si pengguna.
Bagaimana
mengambil semua nilai balik dari terjadinya error??
Untuk semua kesalahan selain
penulisan kode php dan kesalahan hasil proses, kita bisa lacak dengan membuat
fungsi sendiri yang di sisipkan pada fungsi set_error_handler.
fungsi yang dibuat cukup sederhana,
kita lihat berikut :
function
PesanErrorPHP($number,$string,$file,$line,$context)
{
echo "<h2
text-align:\"center\">".$string."</h2>";
}
Kemudian dibagian awal program
tambahkan :
set_error_handler('PesanErrorPHP',
E_ALL);
Dengan cara
seperti ini semua pesan kesalahan akan dialihkan ke fungsi PesanErrorPHP. Ini
contoh lengkapnya :
<?php
set_error_handler('pesansalah');
function
pesansalah($number,$string,$file,$line,$context)
{
echo "<h2
style=\"text-align:center;color:red;\">".$string."</h2>";
//proses simpan catatan error
//proses pindah halaman
}
//uji
coba kesalahan
$file=fopen("welcome.txt","r");
unlink("file.txt");
$a=substr($a);
mysql_connect("localhost","root","salahaja");
mysql_query("select
* from contoh");
?>
Kode php diatas jika dijalankan akan
memunculkan pesan salah yang ditampilkan dengan format heading 2 warna merah
dan menunjukkan kesalahan pada baris-baris uji coba. Berikut ini hasil pesan
error yang bisa kita munculkan :
Pada bagian penanganan kesalahan,
kita bisa tambahkan bermacam proses misal menyimpan catatan kesalahan, atau
memindahkan halaman atau yang lainya.
0 komentar:
Posting Komentar