Tutorial PHP

RUMAH PHP Pengenalan PHP Instal PHP Sintaks PHP Komentar PHP Variabel PHP PHP Gema / Cetak Tipe Data PHP String PHP Nomor PHP PHP Matematika Konstanta PHP Operator PHP PHP Jika...Lain...Elseif Beralih PHP PHP Loop Fungsi PHP Array PHP PHP Superglobal PHP RegEx

Formulir PHP

Penanganan Formulir PHP Validasi Formulir PHP Diperlukan Formulir PHP URL/Email Formulir PHP Formulir PHP Lengkap

PHP Lanjutan

Tanggal dan Waktu PHP PHP Termasuk Penanganan File PHP File PHP Buka/Baca Membuat/Menulis File PHP Unggah File PHP Cookie PHP Sesi PHP Filter PHP Filter PHP Tingkat Lanjut Fungsi Panggilan Balik PHP PHP JSON Pengecualian PHP

PHP OOP

PHP Apa itu OOP Kelas/Objek PHP Konstruktor PHP Penghancur PHP Pengubah Akses PHP Warisan PHP Konstanta PHP Kelas Abstrak PHP Antarmuka PHP Ciri-ciri PHP Metode Statis PHP Properti Statis PHP Ruang Nama PHP PHP Iterable

Database MySQL

Database MySQL Koneksi MySQL MySQL Buat DB MySQL Buat Tabel MySQL Sisipkan Data MySQL Dapatkan ID Terakhir MySQL Sisipkan Beberapa MySQL Disiapkan MySQL Pilih Data MySQL Dimana MySQL Dipesan Oleh MySQL Hapus Data Data Pembaruan MySQL Data Batas MySQL

PHP XML

PHP XML Parser PHP SimpleXML Parser PHP SimpleXML - Dapatkan PHP XML Ekspat PHP XML DOM

PHP - AJAX

Pengenalan AJAX AJAX PHP Basis Data AJAX AJAX XML Pencarian Langsung AJAX Jajak Pendapat AJAX

Contoh PHP

Contoh PHP Kompilator PHP Kuis PHP Latihan PHP Sertifikat PHP

Referensi PHP

Ikhtisar PHP Array PHP Kalender PHP Tanggal PHP Direktori PHP Kesalahan PHP Pengecualian PHP Sistem File PHP Filter PHP PHP FTP PHP JSON Kata Kunci PHP PHP Libxml Surat PHP PHP Matematika PHP Lain-lain PHP MySQLi Jaringan PHP Kontrol Keluaran PHP PHP RegEx PHP SimpleXML Aliran PHP String PHP Penanganan Variabel PHP PHP XML Parser PHP Zip Zona Waktu PHP

Pengecualian PHP


Apa itu Pengecualian?

Pengecualian adalah objek yang menjelaskan kesalahan atau perilaku tak terduga dari skrip PHP.

Pengecualian dilemparkan oleh banyak fungsi dan kelas PHP.

Fungsi dan kelas yang ditentukan pengguna juga dapat membuang pengecualian.

Pengecualian adalah cara yang baik untuk menghentikan suatu fungsi ketika menemukan data yang tidak dapat digunakan.


Melempar Pengecualian

Pernyataan throwtersebut memungkinkan fungsi atau metode yang ditentukan pengguna untuk melempar pengecualian. Ketika pengecualian dilemparkan, kode yang mengikutinya tidak akan dieksekusi.

Jika pengecualian tidak tertangkap, kesalahan fatal akan terjadi dengan pesan "Pengecualian Tidak Tertangkap".

Mari kita coba melempar pengecualian tanpa menangkapnya:

Contoh

<?php
function divide($dividend, $divisor) {
  if($divisor == 0) {
    throw new Exception("Division by zero");
  }
  return $dividend / $divisor;
}

echo divide(5, 0);
?>

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

Untuk menghindari kesalahan dari contoh di atas, kita dapat menggunakan try...catchpernyataan untuk menangkap pengecualian dan melanjutkan proses.

Sintaksis

try {
  code that can throw exceptions
} catch(Exception $e) {
  code that runs when an exception is caught
}

Contoh

Tampilkan pesan saat pengecualian dilemparkan:

<?php
function divide($dividend, $divisor) {
  if($divisor == 0) {
    throw new Exception("Division by zero");
  }
  return $dividend / $divisor;
}

try {
  echo divide(5, 0);
} catch(Exception $e) {
  echo "Unable to divide.";
}
?>

Blok catch menunjukkan jenis pengecualian apa yang harus ditangkap dan nama variabel yang dapat digunakan untuk mengakses pengecualian. Dalam contoh di atas, jenis pengecualiannya adalah Exceptiondan nama variabelnya adalah $e.


Mencoba...menangkap...akhirnya Pernyataan

Pernyataan try...catch...finallydapat digunakan untuk menangkap pengecualian. Kode di finallyblok akan selalu berjalan terlepas dari apakah pengecualian tertangkap. Jika finallyada, catchblok adalah opsional.

Sintaksis

try {
  code that can throw exceptions
} catch(Exception $e) {
  code that runs when an exception is caught
} finally {
  code that always runs regardless of whether an exception was caught
}

Contoh

Tampilkan pesan ketika pengecualian dilemparkan dan kemudian tunjukkan bahwa proses telah berakhir:

<?php
function divide($dividend, $divisor) {
  if($divisor == 0) {
    throw new Exception("Division by zero");
  }
  return $dividend / $divisor;
}

try {
  echo divide(5, 0);
} catch(Exception $e) {
  echo "Unable to divide. ";
} finally {
  echo "Process complete.";
}
?>

Contoh

Keluarkan string bahkan jika pengecualian tidak ditangkap:

<?php
function divide($dividend, $divisor) {
  if($divisor == 0) {
    throw new Exception("Division by zero");
  }
  return $dividend / $divisor;
}

try {
  echo divide(5, 0);
} finally {
  echo "Process complete.";
}
?>

Objek Pengecualian

Objek Pengecualian berisi informasi tentang kesalahan atau perilaku tak terduga yang ditemui fungsi tersebut.

Sintaksis

new Exception(message, code, previous)

Nilai Parameter

Parameter Description
message Optional. A string describing why the exception was thrown
code Optional. An integer that can be used used to easily distinguish this exception from others of the same type
previous Optional. If this exception was thrown in a catch block of another exception, it is recommended to pass that exception into this parameter

Metode

Saat menangkap pengecualian, tabel berikut menunjukkan beberapa metode yang dapat digunakan untuk mendapatkan informasi tentang pengecualian:

Method Description
getMessage() Returns a string describing why the exception was thrown
getPrevious() If this exception was triggered by another one, this method returns the previous exception. If not, then it returns null
getCode() Returns the exception code
getFile() Returns the full path of the file in which the exception was thrown
getLine() Returns the line number of the line of code which threw the exception

Contoh

Keluarkan informasi tentang pengecualian yang dilemparkan:

<?php
function divide($dividend, $divisor) {
  if($divisor == 0) {
    throw new Exception("Division by zero", 1);
  }
  return $dividend / $divisor;
}

try {
  echo divide(5, 0);
} catch(Exception $ex) {
  $code = $ex->getCode();
  $message = $ex->getMessage();
  $file = $ex->getFile();
  $line = $ex->getLine();
  echo "Exception thrown in $file on line $line: [Code $code]
  $message";
}
?>

Referensi Pengecualian Lengkap

Untuk referensi lengkap, buka Referensi Pengecualian PHP Lengkap kami .

Referensi berisi deskripsi dan contoh semua metode Pengecualian.