Apa itu Exception?
Exception pada PHP adalah sebuah mekanisme yang digunakan untuk menangani kesalahan atau kegagalan yang terjadi selama proses eksekusi program. Dalam bahasa pemrograman, exception merupakan object yang dibuat ketika terjadi kesalahan pada suatu proses, dan kemudian object ini akan dilempar (thrown) ke dalam program agar dapat ditangani.
Exception adalah cara yang baik untuk menghentikan fungsi saat menemukan data atau proses yang tidak dapat digunakan.
Pelemparan sebuah Exception
Pernyataan throw pada PHP digunakan untuk melemparkan atau memicu sebuah exception secara manual ketika terjadi kesalahan atau kondisi yang tidak diharapkan pada program. Pernyataan throw umumnya digunakan bersamaan dengan blok try…catch untuk menangani exception.
Mari coba melemparkan exception tanpa menangkapnya:
Contoh
<!DOCTYPE html>
<html>
<body>
<?php
function bagi($dividen, $pembagi) {
if($pembagi == 0) {
throw new Exception("Pembagian dengan nol");
}
return $dividen / $pembagi;
}
echo bagi(5, 0);
?>
</body>
</html>
Hasilnya akan terlihat seperti ini:
Fatal error: Uncaught Exception: Division by zero in C:\webfolder\test.php:4
Stack trace: #0 C:\webfolder\test.php(9):
divide(5, 0) #1 {main} thrown in C:\webfolder\test.php on line 4
Pernyataan try…catch
Pernyataan try…catch pada PHP digunakan untuk menangani exception yang terjadi pada program. Pernyataan try digunakan untuk menempatkan blok kode yang kemungkinan menyebabkan kesalahan atau exception, sedangkan pernyataan catch digunakan untuk menangani exception yang terjadi.
Untuk menghindari kesalahan dari contoh di atas, kita dapat menggunakan pernyataan try…catch untuk menangkap exception dan melanjutkan proses.
Sintaks
try {
baris kode yang dapat melemparkan exception
} catch(Exception $e) {
baris kode yang harus dijalankan untuk menangani exception
}
Contoh
Tampilkan pesan saat exception dilemparkan:
<!DOCTYPE html>
<html>
<body>
<?php
function bagi($dividen, $pembagi) {
if($pembagi == 0) {
throw new Exception("Pembagian dengan nol");
}
return $dividen / $pembagi;
}
try {
echo bagi(5, 0);
} catch(Exception $e) {
echo "Tidak dapat dibagi.";
}
?>
</body>
</html>
Blok catch menunjukkan jenis exception apa yang harus ditangkap dan nama variabel yang dapat digunakan untuk mengakses object exception. Pada contoh di atas, jenis pengecualiannya adalah object Exception dan nama variabelnya adalah $e.
Pernyataan try…catch…finally
Pernyataan try…catch…finally pada PHP digunakan untuk menangani exception dan mengeksekusi baris kode tertentu baik terjadi kesalahan atau tidak. Pernyataan try digunakan untuk menempatkan blok kode yang kemungkinan menyebabkan kesalahan atau exception, sedangkan pernyataan catch digunakan untuk menangani exception yang terjadi. Pernyataan finally digunakan untuk menempatkan blok kode yang selalu dieksekusi, baik terjadi kesalahan atau tidak.
Sintaks
try {
baris kode yang dapat melemparkan exception
} catch(Exception $e) {
baris kode yang harus dijalankan untuk menangani exception
} finally {
baris kode yang akan selalu dijalankan baik ada exception ataupun tidak
}
Contoh
Tampilkan pesan saat exception dilemparkan dan kemudian tunjukkan bahwa proses telah berakhir:
<!DOCTYPE html>
<html>
<body>
<?php
function bagi($dividen, $pembagi) {
if($pembagi == 0) {
throw new Exception("Pembagian dengan nol");
}
return $dividen / $pembagi;
}
try {
echo bagi(5, 0);
} catch(Exception $e) {
echo "Tidak dapat dibagi. ";
} finally {
echo "Proses selesai.";
}
?>
</body>
</html>
Contoh
Hasilkan string meskipun exception tidak tertangkap:
<!DOCTYPE html>
<html>
<body>
<?php
function bagi($dividen, $pembagi) {
if($pembagi == 0) {
throw new Exception("Pembagian dengan nol");
}
return $dividen / $pembagi;
}
try {
echo bagi (5, 0);
} finally {
echo 'Proses selesai.';
}
?>
</body>
</html>
Object Exception
Pada PHP, exception diwakili oleh object dari class Exception. Object Exception adalah sebuah instance dari kelas built-in di PHP yang merepresentasikan sebuah kesalahan atau kondisi yang tidak diharapkan pada program.
Sintaks
new Exception (message, code, previous)
Nilai Parameter
Parameter | Description |
---|---|
message | Opsional. digunakan untuk memberikan pesan yang menggambarkan exception yang terjadi. Jika parameter ini tidak diberikan, maka pesan exception akan secara otomatis diisi dengan nilai default yang bergantung pada jenis exception yang terjadi. |
code | Opsional. digunakan untuk memberikan kode error atau kode yang mengidentifikasi exception yang terjadi. Jika parameter ini tidak diberikan, maka kode error akan diisi dengan nilai default yaitu 0. |
previous | Opsional. Jika exception ini dilemparkan ke dalam blok catch dari exception lain, disarankan untuk meneruskan exception itu ke parameter ini |
Fungsi
Object Exception memiliki beberapa properti dan fungsi yang berguna untuk menampilkan informasi tentang exception dan menangani exception pada program. Beberapa properti dan fungsi yang sering digunakan pada object Exception adalah sebagai berikut:
- getMessage(): Fungsi ini mengembalikan pesan exception.
- getCode(): Fungsi ini mengembalikan kode error untuk exception.
- getFile(): Fungsi ini mengembalikan nama file di mana exception terjadi.
- getLine(): Fungsi ini mengembalikan nomor baris di mana exception terjadi.
- getPrevious(): Fungsi ini mengembalikan exception sebelumnya jika dipicu oleh yang lain. Jika tidak, maka mengembalikan nol
Contoh
Informasi keluaran tentang exception yang dilemparkan:
<!DOCTYPE html>
<html>
<body>
<?php
function bagi($dividen, $pembagi) {
if($pembagi == 0) {
throw new Exception("Pembagian dengan nol", 1);
}
return $dividen / $pembagi;
}
try {
echo bagi (5, 0);
} catch(Exception $ex) {
$kode = $ex->getCode();
$pesan = $ex->getMessage();
$file = $ex->getFile();
$line = $ex->getLine();
echo "Exception dilempar dari $file pada baris $line: [Kode $kode] $pesan";
}
?>
</body>
</html>
Tutorial sebelumnya : PHP gettimeofday
Tutorial setelahnya : PHP OOP
Semua Tutorial PHP : Tutorial PHP