Penggunaan fungsi EROOR pada PHP

Contoh
Setel fungsi penangan kesalahan yang ditentukan pengguna dengan fungsi set_error_handler() dan picu kesalahan (dengan trigger_error ()):

Custom error: [$errno] $errstr
"; echo " Error on line $errline in $errfile
"; } // Tetapkan fungsi penanganan kesalahan yang ditentukan pengguna set_error_handler("myErrorHandler"); $test=2; // Trigger error if ($test>1) { trigger_error("A custom error has been triggered"); } ?> /* Output : Custom error: [1024] A custom error has been triggered Error on line 19 in /home/DSWoZo/prog.php

Definisi dan Penggunaan

Fungsi set_error_handler() dapat digunakan untuk menyetel fungsi penanganan kesalahan yang ditentukan pengguna.

Catatan: Penangan kesalahan PHP standar sepenuhnya dilewati jika fungsi ini digunakan dan penangan kesalahan yang ditentukan pengguna harus menghentikan skrip, die(), jika perlu.

Catatan: Jika kesalahan terjadi sebelum skrip dijalankan, pengendali kesalahan kustom tidak dapat digunakan karena tidak terdaftar pada saat itu.

Syntax

set_error_handler(errorhandler, E_ALL | E_STRICT)

Nilai Parameter

ParameterDeskripsi
errorhandler Required. Menentukan nama fungsi yang akan dijalankan pada kesalahan
E_ALL|E_STRICT Optional. Menentukan pada tingkat laporan kesalahan mana kesalahan yang ditentukan pengguna akan ditampilkan. Default-nya adalah “E_ALL”

Detail Teknis

Return Value:Sebuah string yang berisi penangan kesalahan yang telah ditentukan sebelumnya
PHP Version:4.0.1+
PHP Changelog:PHP 5.5: Parameter errorhandler sekarang menerima NULL
PHP 5.2: Penangan kesalahan harus mengembalikan FALSE untuk mengisi $php_errormsg

Section Artikel

  • 1 Definisi dan Penggunaan
  • 2 Syntax
      • 2.0.1 Object oriented style:
      • 2.0.2 Procedural style:
  • 3 Nilai Parameter
  • 4 Detail Teknis

Definisi dan Penggunaan

Fungsi error / mysqli_error() digunakan untuk mengembalikan deskripsi kesalahan terakhir untuk pemanggilan fungsi terbaru, jika ada.

Syntax

Object oriented style:

$mysqli -> error

Procedural style:

mysqli_error(connection)

Nilai Parameter

ParameterDeskripsi
connection Required. Menentukan koneksi MySQL yang akan digunakan

Detail Teknis

Return Value:Mengembalikan string dengan deskripsi kesalahan. “” jika tidak terjadi kesalahan
PHP Version:5+

Contoh – Object oriented style :

 connect_errno) {
  echo "Gagal menghubungkan ke MySQL: " . $mysqli -> connect_error;
  exit();
}

// Tulis Query untuk memeriksa Error
if (!$mysqli -> query("INSERT INTO Persons (FirstName) VALUES ('Ayu')")) {
  echo("Deskripsi error : " . $mysqli -> error);
}

$mysqli -> close();
?>

Contoh – Procedural style :

Penggunaan fungsi EROOR pada PHP

Dalam pemrograman PHP sering dijumpai error karena ada kesalahan pada salah satu proses. Kesalahan ini bisa dikarenakan suatu komponen yang dibutuhkan program tidak ada atau karena syarat yang diminta program tidak terpenuhi. Seperti misalnya sebuah programm untuk membuka file namun file yang dimaksud ternyata tidak ada maka otomatis browser akan menampilkan error.

Jika tampil pesan error pada browser, program yang kita buat akan terlihat tidak profesional dan juga memungkinkan celah yang membahayakan bagi keamanan program itu sendiri. Untuk itu perlu dibuat sebuah penanganan error yang menghentikan program dan kemudian menampilkan pesan error sesuai kondisi yang terjadi.

Contoh script PHP yang memungkinkan terjadi error

$file=fopen("coba.txt","r");  
?>

Dan berikut tampilan error pada browser jika file yang diminta tidak ada

Warning: fopen(coba.txt) [function.fopen]: failed to open stream:
No such file or directory in /var/www/php/demo.php on line 2

Menangani Error pada PHP dengan fungsi die()

Dalam PHP ada beberapa cara untuk menangani error, salah satunya yang paling simpel adalah menggunakan fungsi die(). Caranya adalah dengan menyeleksi kondisi lalu jika tidak terpenuhi kita taruh fungsi die(). Jika fungsi die() dieksekusi maka program akan berhenti dan script program dibawahnya tidak akan dijalankan.

Contoh penggunaan fungsi die()

if(!file_exists("coba.txt")) {  
die("File tidak ditemukan");
} else {
$file=fopen("coba.txt","r");
}
while(! feof($file))
{
echo fgets($file). "
";
}
fclose($file);
?>

Penjelasan script:

Contoh diatas merupakan program untuk membuka file cobe.txt (baris ke-5) dan menampilkan file baris demi baris sampai akhir file (baris ke-7 sampai baris ke-10). Pada baris ke-2 dibuat penyeleksian untk mengecek keberadaan file dengan fungsi file_exist().

Fungsi die ditaruh pada kondisi jika fungsi file_exist() membalikkan nilai FALSE karena file tidak ada. Dengan fungsi die() maka eksekusi script akan dihentikan dan kode program dibawahnya (baris ke-7 sampai akhir) tidak dijalankan. Dengan demikian kita tidak terlalu dipusingkan dengan banyak logika penyeleksian setelahnya.

Menangani error dengan Custom Error Handler dan Trigger Error

Cara kedua untuk menangani error pada PHP adalah dengan membuat fungsi Custom Error lalu membuat Handler untuk menanganinya.

Cara membuat Custom Error

Untuk membuat custom error digunakan aturan penulisan berikut ini :

error_function(error_level,error_message,
error_file,error_line,error_context)

Keterangan parameter :

  • error_level, wajib diisi. Merupakan level error untuk mendefinisikan error pada pengguna. Harus berupa nomor yang mengacu pada tabel error dibawah.
  • error_message, wajib diisi. Merupakan pesan error untuk mendefinisikan error pada pengguna
  • error_file, opsional. Merupakan nama file yang memunculkan error.
  • error_line, opsional. Merupakan nomor baris yang memunculkan error.
  • error_context, opsional. Merupakan array yang berisi semua variabel dan error yang dihasilkan pada saat error itu muncul.

Tabel Error Report Level

Nilai Konstan Keterangan
2 E_WARNING Run-time error, tidak fatal. Pelaksanaan script tidak dihentikan
8 E_NOTICE Run-time pemberitahuan. Script menemukan sesuatu yang mungkin error, tetapi juga bisa terjadi saat menjalankan script secara normal
256 E_USER_ERROR User-generated Fatal error. Ini seperti E_ERROR yang ditetapkan oleh programmer menggunakan fungsi PHP trigger_error ()
512 E_USER_WARNING User-generated Warning, tidak fatal. Ini adalah seperti E_WARNING ditetapkan oleh programmer menggunakan fungsi PHP trigger_error ()
1024 E_USER_NOTICE User-generated-Notice. Ini seperti E_NOTICE ditetapkan oleh programmer menggunakan fungsi PHP trigger_error ()
4096 E_RECOVERABLE_ERROR Catchable fatal error.  Ini seperti E_ERROR tetapi bisa ditangkap handler yang dibuat pengguna
8191 E_ALL Semua Error dan Warning

Contoh Membuat Custom Error :

function customError($errno, $errstr) {  
echo "Error: [$errno] $errstr
";
echo "Akhir Script";
die();
}

Cara mengeset Error Handler

Untuk mengeset Error Handler digunakan fungsi set_error_handler(“Custom Error”).
Contoh Script Custom Error dan Set Error Handler

//membuat fungsi custom error  
function customError($errno, $errstr) {
echo "Error: [$errno] $errstr";
}

//mengeset error handler
set_error_handler("customError");

//memicu terjadinya error
echo($test);
?>

Dan berikut tampilan error yang dihasilkan oleh program diatas :

Error: [8] Undefined variable: test

Menangani Error dengan sistem Reporting melalui Email

Cara ketiga dalam menangani error adalah dengan melaporkan error tersebut. Dalam hal ini error akan dikirimkan melalui email.

Contoh script membuat error reporting melalui email:

//membuat custom error  
function customError($errno, $errstr) {
echo "Error: [$errno] $errstr
";
echo "Webmaster telah diberi tahu";
error_log("Error: [$errno] $errstr",1,
"","From: ");
}

//mengeset error handler
set_error_handler("customError",E_USER_WARNING);

//memicu terjadinya error
$test=2;
if ($test>1) {
trigger_error("Angka harus 1 atau lebih kecil",E_USER_WARNING);
}
?>

Tampilan pada browser

Error: [512] Angka harus 1 atau lebih kecil
Webmaster telah diberi tahu

Tampilan pesan yang diterima email

Error: [512] Angka harus 1 atau lebih kecil

Referensi:

  • http://www.w3schools.com/php/php_error.asp

Bagaimana cara penanganan error pada PHP?

Di antara cara penanganan error yang bisa kita lakukan adalah: Menggunakan fungsi die() Memusatkan penanganan error pada satu fungsi khusus. Menggunakan exception.

Apa itu penanganan error?

Error Handling/Recovery adalah satu penanganan kesalahan (eror) pada berbagai macam keadaan dalam pemrograman. Setiap ada kesalahan, maka eksekusi program tidak akan dihentikan secara tiba tiba, tetapi akan diteruskan ke baris program yang terdapat script penanganan kesalahan.

Kesalahan error terjadi ketika PHP mengerti kode yang telah ditulis Namun apa yang diminta oleh kode tidak dapat dilakukan ini disebut dengan?

Fatal error terjadi ketika PHP mengerti kode yang telah ditulis, namun apa yang diminta oleh kode tidak dapat dilakukan. Fatal error akan menghentikan eksekusi script. Jika Kamu mencoba untuk mengakses fungsi yang belum didefinisikan, maka outputnya adalah fatal error.

Apa saja yang bisa dilakukan untuk penanganan exception?

Terdapat dua cara untuk menangani Exception yaitu dengan menangkap Exception dan melempar Exception. Lakukan penanganan exception dengan menangkap Exception menggunakan blok try-catch. Berilah penjelasan (apakah program termasuk unchecked exceptions atau checked exceptions) !