Media Belajar Bahasa Pemrograman | by APPKEY

PHP Tutorial PHP 15 : Cara Menggunakan Try Catch dan...

Tutorial PHP 15 : Cara Menggunakan Try Catch dan Throw pada PHP

-

Bagi Anda yang sudah pernah membaca serial Codekey tentang Java, Anda mungkin tidak asing dengan istilah try and catch. Pada PHP juga disediakan exception Try and Catch, seperti pada Java. Exception adalah hasil program yang tidak diharapkan yang dapat ditangani oleh program itu sendiri.

Contoh exception termasuk mencoba membuka file yang tidak ada. Exception ini dapat ditangani dengan membuat file atau memberikan opsi kepada pengguna untuk mencari file tersebut. Untuk itu, pada artikel kali ini Codekey akan membahas tuntas tentang Exception pada PHP.

Artikel Terkait  Tutorial PHP 4 : Mengenal Tipe Data di PHP

Exception PHP: Apa itu?

exception-php

Meskipun Anda sudah terbiasa dengan penanganan error PHP, menghentikan skrip tidak selalu merupakan solusi terbaik. PHP 5 memperkenalkan cara baru untuk mengelola kesalahan, yang disebut PHP coba tangkap dan buang metode dan Exception.

Exception PHP adalah error tertentu yang dapat ditangkap dan ditangani oleh sistem. Artinya, Anda dapat membuat eksekusi kode berlanjut meskipun error terdeteksi. Prinsip penanganan Exception PHP berbeda dengan penanganan error PHP karena berorientasi objek (berdasarkan pembuatan objek yang berisi data dan fungsi).

Dengan Exception dan manipulasinya, Anda dapat mengubah alur normal skrip Anda jika terjadi errort ertentu. Fungsi coba tangkap PHP akan membuat cara untuk mencegah kode berhenti ketika menghadapi masalah.

Beberapa exception yang ada di PHP contohnya adalah try dan catch. Exception diperkenalkan di PHP versi 5, ketika penanganan kesalahan standar terbukti tidak cukup untuk kasus-kasus tertentu. Fungsi utama yang digunakan untuk menangani Exception adalah PHP try catch and throw.

Cara Menggunakan Exception

Dalam menggunakan exception di PHP, ada beberapa cara yang harus Anda ketahui. Biasanya, ketika Exception dipicu, sistem melakukan langkah-langkah berikut:

– Menyimpan status skrip saat ini.

– Mengalihkan eksekusi ke fungsi yang ditentukan sebelumnya untuk penanganan Exception.

– Langkah selanjutnya tergantung pada situasi spesifik. Penangan dapat melanjutkan eksekusi dari status skrip yang disimpan sebelumnya, menghentikan aliran kode seluruhnya atau terus berpindah dari baris kode yang berbeda.

Dalam tutorial ini, kami akan mendemonstrasikan metode berikut dalam menggunakan Exception PHP untuk menangani kesalahan. Di sini, yang perlu Anda catat adalah, Exception secara khusus dimaksudkan untuk penanganan kesalahan PHP, bukan untuk beralih ke poin lain dalam skrip.

Berikut ini adalah contoh penggunaan dasar exception.

Penggunaan Dasar Exception

Setelah mengeluarkan Exception, PHP akan menghentikan aliran skrip normal dan mencari blok catch () pertama yang ditemuinya, yang akan dieksekusi. Jika tidak ada blok kode seperti itu, kesalahan fatal akan terjadi, dengan pesan “Uncaught Error”. Cobalah untuk melempar (throw) Exception PHP tanpa pernyataan catch ():

<?php
//membuat fungsi yang akan memberikan exception
function check_num($number) {
  if($number>1) {
    throw new Exception("Nilai harus lebih kecil dari 1");
  }
  return true;
}
//memicu exception
check_num(3);
?>

Anda akan melihat pesan seperti berikut ini:

Fatal error: Uncaught exception 'Exception'
with message Nilai harus lebih kecil dari 1' in C:\webfolder\test.php:6
Stack trace: #0 C:\webfolder\test.php(12):
checkNum(28) #1 {main} thrown in C:\webfolder\test.php on line 6

Try, Throw, dan Catch

Jika kita tidak ingin aplikasi web kita crash setiap kali ada Exception, kita harus menulis skrip untuk menangani Exception tersebut. Skrip yang dijalankan dengan benar untuk menangani Exception harus mencakup:

– try

Try adalah blok untuk bagian kode di mana Exception mungkin terjadi. Jika Exception tidak terpicu, kode akan berjalan seperti biasa. Jika ya, itu dibuang.

– throw

Throw adalah blok yang digunakan untuk memicu Exception. Setiap lemparan harus memiliki setidaknya satu blok catch.

– catch

blok ini mengambil Exception dan menghasilkan objek yang menyimpan datanya.

Pada contoh di bawah ini Anda dapat melihat pemicu Exception (kami memiliki semua blok kode yang diperlukan):

<?php
  //membuat function yang mengandung potensi terjadinya exception
  function checkNumber($number) {
    if($number > 1) {
      throw new Exception('Nilai harus lebih kecil sama dengan 1');
    }
    return true;
  }

  //memicu munculnya exception pada fungsi try
  try {
    checkNumber(2);
    //pada kasus ini exception akan terlempar dan memunculkan pesan berikut
    echo 'Nilai harus lebih kecil sama dengan 1';
  } catch(Exception $e) {
    //mengambil nilai dari exception
    echo 'Message: ' .$e->getMessage();
  }
?>

Berikut ini adalah pesan error yang akan Anda dapatkan.

Message: Nilai harus lebih kecil sama dengan 1

Selanjutnya, kami akan menjelaskan contoh kode di atas. Dalam contoh di atas, kami melemparkan Exception dan menanganinya dengan blok catch (). Berikut ini adalah uraian prosesnya.

  1. Fungsi yang disebut check_num () didefinisikan. Tugasnya adalah untuk memeriksa apakah suatu nilai lebih besar dari 1. Jika kondisi ini terpenuhi, kita PHP membuang Exception.
  2. Fungsi yang baru kita buat dipanggil dalam blok try ().
  3. Di dalam fungsi, Exception dilempar.
  4. catch () menerima Exception yang dilempar dan membuat objek bernama $ e yang menyimpan informasi tentang Exception tersebut.
  5. Kami menggemakan pesan kesalahan dari Exception dengan memanggil $ e-> getMessage () dari objek, yang berisi data tentang Exception.

Meskipun aturan mengatakan setiap Exception harus memiliki catch (), ada cara untuk mengatasinya. Untuk melakukan itu, kita harus belajar bagaimana mendefinisikan kelas penangan Exception tingkat atas.

Mengkustomisasi Kelas Exception

Untuk membuat exception Handler khusus, Anda harus membuat kelas, berisi fungsi yang dimaksudkan untuk menangani Exception dalam PHP setelah dipicu. Kelas ini harus menjadi ekstensi kelas Exception. Ini akan memiliki semua properti asli dari kelas Exception, tetapi Anda dapat menyediakannya dengan fungsi khusus.

Anda dapat melihat cara membuat kelas Exception khusus pada contoh di bawah ini:

<?php
  class customException extends Exception {
    public function error_message() {
      //mendefinisikan pesan error
      $error_msg = 'Error caught on line '.$this->getLine().' in '.$this->getFile()
        .': <b>'.$this->getMessage().'</b> is no valid E-Mail address';
      return $error_msg;
    }
  }

  $email = "someonesomeone@example...com";

  try {
    //mengecek if
    if(filter_var($email, FILTER_VALIDATE_EMAIL) === FALSE) {
      //melempar exception jika email yang dimasukkan tidak Valid
      throw new customException($email);
    }
  } catch (customException $e) {
    //memunculkan pesan error
    echo $e->error_message();
  }
?>

Kelas baru ini adalah salinan yang hampir identik dari kelas Exception asli. Namun, sekarang ini memiliki fungsi error_message () yang dapat dikustom. Karena ia memiliki semua metode dan properti kelas asli, kita dapat menggunakan setiap fungsi yang terdapat dalam kelas Exception normal, seperti GetLine (), GetFile (), GetMessage ().

Contoh kode di atas adalah melempar exception, yang mana ia ditangkap menggunakan exception class khusus yang dikustom.

  1. Kelas custom_exception () dibuat sebagai perpanjangan dari kelas asli, mewarisi setiap properti dan metode dari aslinya.
  2. Fungsi error_message () dibuat. Dengan menggunakan fungsi ini, kami membuat kode mengembalikan pesan kesalahan jika alamat email tidak valid.
  3. $ email adalah sebuah string, yang bukan merupakan alamat email yang valid.
  4. Sebuah blok try () dijalankan dan Exception dilemparkan.
  5. Blok catch () menampilkan pesan kesalahan.

Dengan menggunakan beberapa Exception, Anda dapat memeriksa beberapa kondisi sekaligus. Untuk melakukan itu, Anda harus menggunakan beberapa blok kode if..else, sakelar, atau beberapa Exception. Perlu diingat bahwa setiap Exception ini dapat menggunakan kelasnya sendiri dan menampilkan pesan kesalahannya. Berikut contohnya:

<?php
  class customException extends Exception {
    public function error_message() {
      //pesan error
      $error_msg = 'Error caught on line '.$this->getLine().' in '.$this->getFile()
        .': <b>'.$this->getMessage().'</b> is no valid E-Mail address';
      return $error_msg;
    }
  }

  $email = "sepasep@asep.com";

  try {
    //mengecek perintah if
    if(filter_var($email, FILTER_VALIDATE_EMAIL) === FALSE) {
      //melempar exception, semisal kesalahan
      throw new customException($email);
    }
    //mengecek isi email yang memiliki "example"
    if(strpos($email, "asep") !== FALSE) {
      throw new Exception("$email mengandung kata'asep'");
    }
  }
  catch (customException $e) {
    echo $e->error_message();
  }
  catch(Exception $e) {
    echo $e->getMessage();
  }
?>

Dalam contoh di atas, Anda dapat melihat bahwa dua kondisi tertentu diuji. Jika keduanya tidak terpenuhi, Exception akan dilemparkan:

  1. Kelas custom_exception () dibuat sebagai perpanjangan dari kelas asli, mewarisi setiap properti dan metode dari aslinya.
  2. Fungsi error_message () dibuat. Fungsi ini mengembalikan pesan kesalahan jika alamat email tidak valid.
  3. $ email adalah string, yang merupakan alamat email yang valid, berisi contoh kata.
  4. Blok try () dijalankan, tetapi Exception tidak dilemparkan.
  5. Saat memeriksa kondisi kedua, Exception dilemparkan, karena variabel $ email berisi contoh nilai string.
  6. Blok catch () menampilkan pesan kesalahan.

Jika Exception yang dilempar adalah milik kelas custom_exception yang tidak memiliki tangkapan khusus, tangkapan Exception dasar akan menangani Exception.

Melempar Ulang Exception

Terkadang, saat melontarkan Exception, Anda mungkin ingin menanganinya dengan cara yang berbeda dari cara standar. Anda bisa melempar Exception lagi di dalam blok catch () Anda.

Skrip tersebut dimaksudkan untuk menyembunyikan kesalahan sistem dari pengguna aplikasi web. Pembuat kode mungkin ingin mengetahui kesalahan sistem, tetapi pengguna tidak (dan tidak seharusnya) peduli tentang itu. Jika Anda ingin membuat pesan kesalahan ramah pengguna, Anda dapat membuang kembali Exception untuk mengubah pesan seperti contoh berikut ini:

Contoh kode di atas menguji apakah alamat email yang dimasukkan memiliki contoh string sebagai nilainya. Jika string ditemukan, Exception akan ditampilkan kembali:

<?php
  class customException extends Exception {
    public function error_message() {
      //pesan error
      $error_msg = 'Error caught on line '.$this->getLine().' in '.$this->getFile()
        .': <b>'.$this->getMessage().'</b> is no valid E-Mail address';
      return $error_msg;
    }
  }

  $email = "sepasep@asep.com";

  try {
    //mengecek perintah if
    if(filter_var($email, FILTER_VALIDATE_EMAIL) === FALSE) {
      //melempar exception, semisal kesalahan
      throw new customException($email);
    }
    //mengecek isi email yang memiliki "example"
    if(strpos($email, "asep") !== FALSE) {
      throw new Exception("$email mengandung kata'asep'");
    }
  }
  catch (customException $e) {
    echo $e->error_message();
  }
  catch(Exception $e) {
    echo $e->getMessage();
  }
?>

Berikut penjelasan tentang kode di atas. Contoh kode di atas menguji apakah alamat email yang dimasukkan memiliki contoh string sebagai nilainya. Jika string ditemukan, Exception akan ditampilkan kembali:

  1. Kelas custom_exception () dibuat sebagai perpanjangan dari kelas asli, mewarisi setiap properti dan metode dari aslinya.
  2. Fungsi error_message () dibuat. Fungsi ini mengembalikan pesan kesalahan jika alamat email tidak valid
  3. $ email adalah string, yang merupakan alamat email yang valid, berisi contoh kata.
  4. Try () berisi blok try () lain, yang digunakan untuk membuang kembali Exception kami.
  5. Exception diberikan karena variabel $ email berisi contoh nilai string.
  6. Exception ditangkap, dan custom_exception kemudian dilemparkan.
  7. Exception ini menampilkan pesan kesalahan ramah pengguna.

Jika Exception tidak berjalan ke blok catch () di blok try () saat ini, ia mungkin mencari catch () di level yang lebih tinggi.

Kemudian, kami akan menjelaskan exception handler tingkat tinggi. Fungsi yang disebut set_exception_handler () membuat fungsi yang ditentukan pengguna dimaksudkan untuk menangani setiap Exception yang tidak tertangkap. Lihatlah contoh berikut ini.

<?php
  function myException($exception) {
    echo "<b>Exception : </b> " . $exception->getMessage();
  }

  set_exception_handler('myException');

  throw new Exception('Tidak ada Exception yang didapat');?>

Kode ini akan menghasilkan output:

Exception : Tidak ada Exception yang didapat

Perlu Anda catat, kode di atas tidak memiliki blok catch(). Seluruh exception ditangani dengan exception tingkat atas yang sudah diatur.

Itulah penjelasan tentang Exception PHP yang harus Anda pahami. Menangani exception PHP cukup rumit, sehingga Anda perlu mengetahui dasar-dasar PHP terlebih dahulu. Exception pada PHP bisa dilemparkan di blok catch () yang terletak di dalam blok try ().

Perlu Anda ketahui juga, versi PHP sebelumnya yaitu PHP 5  hanya memiliki Error tetapi bukan Exception sehingga Anda memerlukan PHP versi di atas 5 untuk menggunakan exception.

Menangani Exception di PHP hanya menggunakan fungsi try (), catch () dan throw (). Dimungkinkan untuk menggunakan beberapa Exception dan beberapa blok catch () secara bersamaan. Anda dapat menulis sebagian besar skrip di blok try () untuk menangani semua Exception yang mungkin terjadi.

Jika Anda tertarik untuk belajar PHP, Codekey menyediakan berbagai tutorial, pembahasan, materi, tips, dan trik untuk Anda saat bekerja dengan PHP. Kami juga menyediakan tutorial untuk bahasa pemrograman lainnya. Jangan lupa untuk dapatkan update terbaru dari situs Codekey.


Jasa Pembuatan Aplikasi, Website dan Internet Marketing | PT APPKEY
PT APPKEY adalah perusahaan IT yang khusus membuat aplikasi Android, iOS dan mengembangkan sistem website. Kami juga memiliki pengetahuan dan wawasan dalam menjalankan pemasaran online sehingga diharapkan dapat membantu menyelesaikan permasalahan Anda.

Jasa Pembuatan Aplikasi

Jasa Pembuatan Website

Jasa Pembuatan Paket Aplikasi

Jasa Pembuatan Internet Marketing

Tutorial

Subscribe Sekarang

Dapatkan beragam informasi menarik tentang bahasa pemrograman langsung melalui email Anda. Subscribe sekarang dan terus belajar bersama kami!

Blog Post Ranking 10

Tutorial Dart 18 : Ayo Mulai, Pelajari Cara Install Flutter

Pada seri tutorial Dart kali ini, Codekey akan menampilkan hal yang sedikit berbeda, yaitu tentang aplikasi-aplikasi yang mendukung pemrograman...

Tutorial Dart 1 : Pengenalan Bahasa Pemrogaman Dart untuk Pemula

Halo pembaca setia Codekey! Belajar pemrograman saat ini menjadi keharusan bagi semua orang yang ingin berkarir sebagai programmer, hal...

Tutorial Python 9 : Cara membuat perulangan (Looping) pada Python

Pada artikel sebelumnya, Codekey telah menjelaskan tentang Operasi Kondisional Python yang di dalamnya menyinggung tentang percabangan dan perulangan. Belajar...

Tutorial Python 8 : Langkah Mudah Membuat Operasi Kondisional pada Python

Pada pembahasan sebelumnya, Codekey telah menjelaskan kepada Anda tentang pengoperasian string pada Python mulai dari menggabungkan hingga memanipulasi string...

Tutorial PHP 8 : Memahami Array Multidimensi di PHP | Kapan dan Bagaimana Menggunakannya?

Pada artikel sebelumnya kami telah membahas tentang array PHP serta membahas sedikit tentang array multidimensi PHP. Pada artikel kali...

Tutorial Swift 2 : Tahap Awal Persiapan dan Mengatur Lingkungan Kerja pada Swift

Setelah Anda mengenal bahasa pemrograman Swift 4, langkah selanjutnya adalah Anda perlu memulai pemrograman Swift 4 dengan cara install...

Tutorial Javascript 8 : Panduan Lengkap Cara Membuat Array di Javascript

Seperti bahasa pemrograman yang berorientasi objek lainnya, dalam JavaScript juga terdapat array. Jika Anda memiliki banyak objek yang ingin...

Tutorial Python 7 : Tutorial Dasar Cara Mengoperasikan String pada Python

Anda ingin belajar Python dan ingin menjadi ahli dalam bahasa pemrograman Python? Mari belajar bersama Codekey! Pada pembahasan kali...

Tutorial Javascript 6 : Cara Membuat Event pada Javascript

Event JavaScript adalah tindakan atau proses khusus yang terjadi dalam program atau situs web yang akan Anda kembangkan. Anda...

Tutorial PHP 9 : Belajar Menggunakan Sort Array Berdasarkan Key dan Value

Array PHP sangat berguna untuk para developer untuk menyimpan data pada variabel. Anda dapat mengelompokkannya dengan membuat kategori tertentu...

Bisnis

Online Service

Peluang Bisnis

Model Bisnis

Entrepreneurship

Uang

Ketrampilan

Outsourcing

Monetize

Pemasaran

SEO

Internet Marketing

Dasar Pemasaran

Strategi Pemasaran

Situs Web Analitik

Iklan

Teknologi

Teknologi Terbaru

AI

Komputer

Jaringan

Paling Sering dibaca
Mungkin Anda Menyukainya