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:
<?php
function tambah($nilai)0
{
if ($nilai < 1)
throw new Exception("Pelit amat sih, "
."masa dikasi nilai {$nilai}" . PHP_EOL);
return "1 + {$nilai} = " . (1 + $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.
<?php
function tambah($nilai)
{
if ($nilai < 1)
throw new Exception("Pelit amat sih, "
."masa dikasi nilai {$nilai}" . PHP_EOL);
return "1 + {$nilai} = " . (1 + $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. Untuk menggunakan eksepsi lebih lanjut anda bisa melihat referensi berikut.
Comments
Saya kira exception handling seperti ini hanya ada di Java dan .NET ternyata di PHP implementasinya pun hampir sama.
Nice article..
Kirim Komentar