Thursday, October 2, 2014

mengimplementasikan try catch di PHP menggunakan Codeigniter

try and catch berfungsi untuk melihat apakah function yang dieksekusi terjadi kesalahan atau error atau tidak. jika terjadi kesalahan maka akan di catch. Dan catch akan menunjukan error yang ingin kita beritahukan. misalkan fungsi pembagian, ketika nilai pembagi adalah nol maka akan terjadi error defined by zero sedangkan kita ingin menampilkan nilai nol jika nilai pembaginya juga nol. Maka kita perlu menggunakan try and catch untuk menangkap pesan error tersebut dan menggantinya menggunakan nilai nol sesuai dengan yang ingin kita tampilkan. Berikut penjelasan ketika try and catch digunakan pada framework Codeigniter :

pertama kita membuat library dengan nama cek_error.php

dan mengisikan script dalam file tersebut seperti dibawah ini :

 <?php if (! defined('BASEPATH')) exit('No direct script access allowed');  
 class cek_error   
 {  
      public function __construct()  
      {  
           $this->CI =& get_instance();  
           ini_set('display_errors','on');  
           error_reporting(E_ALL^E_NOTICE);  
      }  
      function inverse($x,$y){  
           if($y==0){  
                throw new Exception('0');  
           }else{  
                return ($x/$y)*100;  
           }  
      }  
 }  

setelah membuat library selanjutnya load library yang telah dibuat dicontroller dan menggunakan try and catch :
 <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');  
 class latihan extends CI_Controller {  
   public function __construct()  
    {  
     parent::__construct();  
     $this->load->library(array('cek_error'));  
     ini_set('display_errors','on');  
     error_reporting(E_ALL^E_NOTICE);  
    }  
  function index(){  
       try{  
         $tfi = $this->cek_error->inverse(10,0);  
        }catch(Exception $e){  
          $tfi = $e->getMessage();  
        }  
       echo round($tfi,2);  
    }  
 }  


Jika ingin menapilkan try and catch di view tinggal memindahkan saja try and catch tersebut diview.







No comments:

Post a Comment