Kamis, 22 September 2011

Eksepsi dan Penanganan Kesalahan di PHP

Assalamualaikum wr.wb

Bismillahirrahmanirrahim.

Kemarin saya mengalami problem dengan program saya, semoga dengan adanya artikel ini dapat membantu sahabat semua ^^


PHP sudah mendukung eksepsi sejak dirilisnya PHP5. Eksepsi sendiri bertujuan agar kita bisa menentukan tipe dan isi dari pesan kesalahan. Jika kode program yang dibuat memenuhi kondisi untuk eksepsi tersebut, maka pesan kesalahan akan ditampilkan oleh interpreter PHP dan program akan berhenti (tidak memproses kode berikutnya).

Sama seperti bahasa pemrograman lain, PHP menyediakan penanganan terhadap eksepsi ini yaitu dengan blok try dan catch. Penanganan ini memungkinkan program akan terus berjalan walaupun ditemukan eksepsi. Untuk membuat eksepsi sendiri dapat dilakukan dengan statement throw.

Untuk lebih jelasnya bisa melihat kode berikut:

<?phpfunction tambah($nilai){
    if (
$nilai 1)
        throw new 
Exception("Pelit amat sih, "
                           
."masa dikasi nilai {$nilai}" PHP_EOL);

    return 
"1 + {$nilai} = " . ($nilai);
}

echo 
tambah(1), PHP_EOL;
echo 
tambah(0), PHP_EOL;
echo 
'Selesai!'PHP_EOL;?>

Jika kode diatas dijalankan maka akan memberikan pesan berikut:
1 + 1 = 2

"Fatal error: Uncaught exception 'Exception' with message 'Pelit amat sih, masa dikasi nilai 0'"

Program akan berhenti sampai pemanggilan fungsi tambah(0) saja, karena menemukan eksepsi. Agar program bisa terus berjalan sampai akhir kode, maka dibutuhkan penanganan eksepsi. Berikut ini contoh penanganan eksepsi dengan blok try dan catch.

<?phpfunction tambah($nilai)
{
    if (
$nilai 1)
        throw new 
Exception("Pelit amat sih, "
                            
."masa dikasi nilai {$nilai}" PHP_EOL);

    return 
"1 + {$nilai} = " . ($nilai);
}

try {
    echo 
tambah(1), PHP_EOL;
    echo 
tambah(0), PHP_EOL;
} catch (
Exception $e) {
    echo 
$e->getMessage();
}

echo 
'Selesai!'PHP_EOL;?>

Jika kode diatas dijalankan maka akan menghasilkan keluaran:
1 + 1 = 2
Pelit amat sih, masa dikasi nilai 0
Selesai!
Dari kode diatas dapat diambil kesimpulan bahwa interpreter menjalankan statement yang ada pada blok try, dan jika menemukan eksepsi maka interpreter akan menjalankan statement yang ada pada blok catch. Dan kemudian interpreter terus bekerja sampai kode paling akhir. Dengan kata lain kode diatas akan terus berjalan walaupun menemukan eksepsi pada pemanggilan fungsi tambah(0).
Contoh diatas adalah contoh penggunaan eksepsi yang sederhana.

Semoga bermanfaat ya ^^

Sumber : http://dollyaswin.net/blog/eksepsi_dan_penanganan_kesalahan_di_php

Tidak ada komentar:

Posting Komentar