Try Catch PHP

Try Catch PHP

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>

Jalankan Contoh

Hasilnya akan terlihat seperti ini:

Fatal errorUncaught 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>

Jalankan Contoh

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>

Jalankan Contoh

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>

Jalankan Contoh

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

ParameterDescription
messageOpsional. 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.
codeOpsional. 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>

Jalankan Contoh

Tutorial sebelumnya : PHP gettimeofday
Tutorial setelahnya : PHP OOP
Semua Tutorial PHP : Tutorial PHP

Tinggalkan Balasan

Keranjang Belanja0
Keranjang belanja kosong ...
0