Tentang Exception (Tinjauan bebas beberapa gagasan di PHP)

Exeption,  Dimana dan kapan menggunakan exception? Exception adalah peringatan akan suatu hal atau error tentang jalannya program s...



Exeption, Dimana dan kapan menggunakan exception?
Exception adalah peringatan akan suatu hal atau error tentang jalannya program saat RUNTIME.
PHP mengimplementasikan ini dalam bentuk:

pertama: dokumentasi jenis error
kedua: kelas yang menangan seluruh exception dalam engine PHP

Exception digunakan dalam cara dua hal:

pertama: kita telah dapat memperkirakan setiap kemungkinan error yang bakal terjadi, berbekal set pesan error yang kita ketahui yang mungkin dikeluarkan oleh engine PHP, menyangkut error saat runtime. lalu berbekal itu kita menyiapkan perangkap2 pesan atau error.

kedua: saat fase pengembangan dan uji coba kita menemukan sejumlah error yang dikeluarkan oleh engine php, kita mencatat semua error itu dan menyiapkan perangkap2 exception.

Exception dibuat secara terstruktur pada blok-blok kode (blok kode diantara kurung kurawal {}), idealnya untuk setiap blok kode dipersiapkan perangkap exception, yang juga berarti untuk setiap fungsi yang dibuat, dibuatkan perangkap exception.

--------------------------------------------------------------------------------------------------------------------------exception handling = proses penanganan terhadap exception yang timbul.

Mekanisme ini meliputi: saving terhadap state kode yang sedang berjalan.eksekusi kode teralihkan ke fungsi yang diberi tugas menangani exception biasanya berupa blok kode atau handler function, atau disebut saja handler secara umum. 

Mekanisme (Skenario) keseluruhan terjadinya exception:aliran kode pada suatu titik menemui error pada mesin komputer, lalu engine php diatasnya melemparkan pesan sebagai pemberitahuan, blok kode untuk handling exception yang telah disiapkan akan mencoba menangkap pesan tersebut, dan mencari kecocokan dengan daftar exception yang telah dipetakan atau dilist sebelumnya oleh engine php, jika terdapat kecocokan maka exception dinamakan tertangkap (caught) dan proses selanjutnya ditangani oleh blok kode handling exception, tetapi sebaliknya jika tak terdapatkecocokan dengan daftar exception, maka terjadi yang diistilahkan sebagai FATAL ERROR (error yang tidak diketahui penyebabnya), atau dinamakan juga sebagai uncaught exception. tetapi bisa saja jenis error ini diketahui oleh programmer karena mungkin dirancang olehnya tetapi tidak terdaftar pada list exception yang diketahui engine php.

#Apakah kegunaan lain/sampingan dari handling exception?

Pertama = dapat kita gunakan untuk menciptakan error pada program, suatu jenis error yang mungkin tidak terdaftar dalam list exception engine php. tetapi kita dapat juga membuat pesan error sekaligus handling function untuknya dengan lengkap
contoh:(sumber contoh kode: http://www.w3schools.com/php/php_exception.asp diakses tgl 6 mei 2013)

1) { throw new Exception("Value must be 1 or below"); } return true; }
//trigger exceptioncheckNum(2);?>The code above will get an error like this:

Fatal error: Uncaught exception 'Exception'with message 'Value must be 1 or below' in C:\webfolder\test.php:6Stack trace: #0 C:\webfolder\test.php(12):checkNum(28) #1 {main} thrown in C:\webfolder\test.php on line 6

Kedua = kita dapat menggunakan untuk mengalihkan aliran kode sesuka kita dengan membuat exception handling yang membelokkan ke aliran kode tertentu, sambil juga mungkin memberi pesan jika kita inginkan.
--------------------------------------------------------------------------------------------------------------------------

Contoh Konstruksi Fungsi yang dibenamkan kode exception di dalamnya, dan bagaimana cara menjalankan fungsi yang memiliki kode exception.

Fungsi yang memiliki kode xception di dalamnya dijalankan dalam paradigma Try, throw and catch.
(sumber contoh kode: http://www.w3schools.com/php/php_exception.asp diakses tgl 6 mei 2013)

1) { throw new Exception("Value must be 1 or below"); } return true; }

//trigger exception in a "try" blocktry { checkNum(2); //If the exception is thrown, this text will not be shown echo 'If you see this, the number is 1 or below'; }

//catch exceptioncatch(Exception $e) { echo 'Message: ' .$e->getMessage(); }?>The code above will get an error like this:

Message: Value must be 1 or below
--------------------------------------------------------------------------------------------------------------------------

#Bagaimana cara membuat class exception sendiri selain dari class built-in php (class Exception)?
Prinsipnya sederhana saja, yaitu buat class yang mana class itu diturunkan dari class Exception.
(sumber contoh kode: http://www.w3schools.com/php/php_exception.asp diakses tgl 6 mei 2013)

getLine().' in '.$this->getFile() .': '.$this->getMessage().' is not a valid E-Mail address'; return $errorMsg; } }
$email = "someone@example...com";
try { //check if if(filter_var($email, FILTER_VALIDATE_EMAIL) === FALSE) { //throw exception if email is not valid throw new customException($email); } }
catch (customException $e) { //display custom message echo $e->errorMessage(); }?>
--------------------------------------------------------------------------------------------------------------------------

#Bagaimana sebenarnya prinsip dasar penggunaan Exception?

Pertama: exception yang dibuat oleh engine php secara bawaan.untuk menggunakan class exception guna mengahndle exception adalah cukup letakkan blok kode yang diperkirakan memunculkan/memicu/meng-throw exception pada TRY-CATCH.

contoh:
try { Blok Kode yang diperkirakan bakal melemparkan exception }
catch (Exception $e) { echo "Message:".$e->getMessage(); }

atau lebih umum lagi:
contoh:

try {Blok Kode yang diperkirakan bakal melemparkan exception (blok kode bisa berupa fungsi atau set fungsi) }

catch (Exception $e) { Blok Kode yang menangani jenis exception (blok kode bisa berupa fungsi atau set fungsi). }

atau lebih umum lagi:
contoh:

try { Blok Kode yang diperkirakan bakal melemparkan exception (blok kode bisa berupa fungsi atau set fungsi) }

catch (Kelas_Turunan_Exception $e) { Blok Kode yang menangani jenis exception (blok kode bisa berupa fungsi atau set fungsi). }

Kedua: exception yang kita buat sendiri untuk tujuan tertentu (membuat error sendiri atau mengalihkan aliran kode)

Prinsip penggunaan exception adalah: Try Throw Catch.
Contoh:

try { Blok Kode yang didalamnya kita melakukan throw exception sendiri yaitu "throw new Exception(....) atau throw new KelasTurunanException(.......)" (blok kode bisa berupa fungsi atau set fungsi, dimana throw exception bisa ditulis di dalam fungsi atau bisa juga ditulis diluar fungsi tetapi dalam satu blok kode) }

catch (Exception $e atau Kelas_turunan_Exception $e) { Blok Kode yang menangani jenis exception (blok kode bisa berupa fungsi atau set fungsi). }
--------------------------------------------------------------------------------------------------------------------------

#Penggunaan Exception dapat digeneralisir lebih jauh dalam konsep multi exception:
yaitu:Try Multi-Catch dan Try Multi-Throw Multi-Catch

atau lebih umum lagi dengan multi class turunan:Try Multi-Throw-By-Class_anak_berbeda Multi-Catch-sesuai-class

contoh:(sumber contoh kode: http://www.w3schools.com/php/php_exception.asp diakses tgl 6 mei 2013)

getLine().' in '.$this->getFile().': '.$this->getMessage().' is not a valid E-Mail address';return $errorMsg;}}
$email = "someone@example.com";
try { //check if if(filter_var($email, FILTER_VALIDATE_EMAIL) === FALSE) { //throw exception if email is not valid throw new customException($email); } //check for "example" in mail address
if(strpos($email, "example") !== FALSE) { throw new Exception("$email is an example e-mail"); } }
catch (customException $e) { echo $e->errorMessage(); }
catch(Exception $e) { echo $e->getMessage(); }?>
--------------------------------------------------------------------------------------------------------------------------

#Pembuatan Excepetion dapat diperluas lagi dengan cara sebagai berikut:

Try {Blok Kode A (didalamnya terdapat throw atau tidak)} catch {Blok Kode B}
dimana Blok kode A juga di dalamnya ditanam Try-Catch exception, dan seterusnya bisa secara berantai, atau juga di dalam Blok Kode B tertanam Try-Catch exception yang juga mungkin berantai kedalam samapi kedalaman tertentu.Kita namakan itu sebagai nested try-catch.

Lebih luas lagi nested try-catch dapat diterapkan pada multi exception.

Contoh:(sumber contoh kode: http://www.w3schools.com/php/php_exception.asp diakses tgl 6 mei 2013)

phpclass customException extends Exception { public function errorMessage() { //error message $errorMsg = $this->getMessage().' is not a valid E-Mail address.'; return $errorMsg; } }
$email = "someone@example.com";
try { try { //check for "example" in mail address if(strpos($email, "example") !== FALSE) { //throw exception if email is not valid throw new Exception($email); } } catch(Exception $e) { //re-throw exception throw new customException($email); } }
catch (customException $e) { //display custom message echo $e->errorMessage(); }?>
--------------------------------------------------------------------------------------------------------------------------

#Anatomi Class Exception (sumber manual PHP versi english):
class Exception{
protected $message = 'Unknown exception'; // exception message
private $string; // __toString cache
protected $code = 0; // user defined exception code
protected $file; // source filename of exception
protected $line; // source line of exception
private $trace; // backtrace
private $previous; // previous exception if nested exception
public function __construct($message = null, $code = 0, Exception $previous = null);
final private function __clone(); // Inhibits cloning of exceptions.
final public function getMessage(); // mendapatkan pesan exception
final public function getCode(); // mendapatkan kode exception
final public function getFile(); // mendapatkan nama file sumber exception
final public function getLine(); // mendapatkan nomor baris kode sumber exception pada file script final public function getTrace(); // mendapatkan array dari backtrace()
final public function getPrevious(); // exception sebelumnya
final public function getTraceAsString(); // string terformat dari penjejakan exception (trace)

/* Overrideable (dapat dioveride) */ 

public function __toString(); // string terformat untuk ditampilkan}?>

Cara sederhana penggunaan class ini adalah:buat objek exception lalu throw atau langsung throw bersamaan dengan membuat kelasnya, dan isi parameter-parameter constructornya.

yaitu sebagai berikut:

throw new Exception($message,$code,$previous).

setelah itu tangkap dan gunakan objeknya untuk menampilkan informasi2 error.

contoh: misal $e adalah objeknya, maka $e->getMessage() memberikan pesan errornya, $e->getCode() memberikan kode errornya, dan seterusnya, dapat dimanfaatkan untuk tujuan-tujuan manipulasi kode dan aliran kode.

Secara persis penggunaanya kita letakkan dalam TRY CATCH atau TRY THROW CATCH seperti penjelasan di atas.

sumber : note aslan alwi

COMMENTS

BLOGGER: 1
Loading...

Butuh Jasa Buat Website Murah dan Berkualitas ?

Langsung saja Hubungi Jasa Buat Website Banyuwangi!! Harga kompetitif nan murah namun kualitas tetap terbaik dan pelayanan yang tetap profesional. Pngerjaan pun juga lancar dan cepat, bahkan anda akan dibantu apabila mengalami kesulitan ketika ingin memanajemen website anda

Name

bahasa inggris,2,banyuwangi,4,bayuwangi wisata,3,jasa travel,1,kawah ijen,3,layanan optimasi seo,1,paket wisata banyuwangi,2,pantai,3,php script,1,plengkung,3,rental mobil banyuwangi,2,rental sewa mobil,2,seo google,1,seo murah,1,seo offpage google,1,seo organik,1,seo page one,1,sewa mobil banyuwangi,2,sukamade,3,teknologi,53,tips,40,tips seo,1,tour travel,4,transport banyuwangi,2,travel banyuwangi denpasar,1,travel tour banyuwangi. banyuwangi travel,5,wedi ireng,3,wisata,3,wisata banyuwangi,4,
ltr
item
Yamungkin: Tentang Exception (Tinjauan bebas beberapa gagasan di PHP)
Tentang Exception (Tinjauan bebas beberapa gagasan di PHP)
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFLUr5TpRIXSjIQKzQNJNM2wcvKbMAWwepUMKNdA9R8UT0eFBPpd4SyXANkYKkI7Kr9qZ9AhAQAMqrug9EZ-O0ZfIbLIAf3xZrqfWuAOPsS1HR1e76mKjFFOURU2LcanJM8ODNM9ZphH4/s320/exception+php.png
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFLUr5TpRIXSjIQKzQNJNM2wcvKbMAWwepUMKNdA9R8UT0eFBPpd4SyXANkYKkI7Kr9qZ9AhAQAMqrug9EZ-O0ZfIbLIAf3xZrqfWuAOPsS1HR1e76mKjFFOURU2LcanJM8ODNM9ZphH4/s72-c/exception+php.png
Yamungkin
http://yamungkin.blogspot.com/2016/10/tentang-exception-tinjauan-bebas-php.html
http://yamungkin.blogspot.com/
http://yamungkin.blogspot.com/
http://yamungkin.blogspot.com/2016/10/tentang-exception-tinjauan-bebas-php.html
true
4800583156382498093
UTF-8
Loaded All Posts Not found any posts VIEW ALL Readmore Reply Cancel reply Delete By Home PAGES POSTS View All RECOMMENDED FOR YOU LABEL ARCHIVE SEARCH ALL POSTS Not found any post match with your request Back Home Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sun Mon Tue Wed Thu Fri Sat January February March April May June July August September October November December Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec just now 1 minute ago $$1$$ minutes ago 1 hour ago $$1$$ hours ago Yesterday $$1$$ days ago $$1$$ weeks ago more than 5 weeks ago Followers Follow THIS PREMIUM CONTENT IS LOCKED STEP 1: Share. STEP 2: Click the link you shared to unlock Copy All Code Select All Code All codes were copied to your clipboard Can not copy the codes / texts, please press [CTRL]+[C] (or CMD+C with Mac) to copy