PHP Try Catch Kullanımı

Merhaba arkadaşlar. Bu yazımızda PHP ile hata yakalamaya yarayan Try-Catch kullanımını göreceğiz.

Mesela projemizde bazı yerlerde Fatal Error (Ölümcül hata) alabiliriz. Php fatal error verdiği zaman direk çalışmayı durdurur ve sonraki satırlarda kodlar çalışmaz. Ama biz çalışmasına devam etmesini isteyebiliriz. Bu gibi durumlarda Try Catch kullanmak sorunu çözmemize yardımcı olacaktır.

Try-Catch Kullanımı

Kullanımı şu şekildedir;

Try komutu içinde belli koşullar trhrow ifadesi ile tanımlanır.

Eğer throw ifadesi çalışırsa mesajla birlikte catch ifadesine gider.

Catch ifadesi ile hatayı yakalar ve ekrana yazdırırız.

Basit bir örnekle anlatmaya çalışacağım.


<?php 
$paket_fiyatı = 55;
$bakiye = 45;
try {
  if ($paket_fiyatı >  $bakiye) {
      throw new Exception("Yetersiz bakiye.");
  }else{
     echo "Paketi alabilirsiniz.";
}
}
//Hatayı burda yakalıyoruz
catch(Exception $e) {
  echo 'Message: ' .$e->getMessage();
}
// Kod çalıştığında ekranda Message: Yetersiz bakiye yazacaktır.
 ?>

Yukarda basit bir try-catch yapısı görüyorsunuz. Bu örnek ile birlikte en azından bir şeyler anladığınızı düşünüyoum. Umarın iyi anlatabilmişimdir. :)

Try-Catch-Finally Kullanımı

Yukarda try-catch yapısını anlattım . Bunlara kardes birde finally komutu var. Try komutu ile hata yakalayıp catch bloğuna atarız. Duruma göre try veya catch blokları çalışabilir. Finally komutu ise hata olsun olmasın her türlü çalışan komuttur. Bir nevi kraldır diyebiliriz. Sorun varmış yokmuş hayatta umrunda olmaz. Polemiğe girmeden çalışmasına devam eder. Şimdi bir örnekle bunu açıklayalım.

<?php
try { 
  throw new Exception("Burada kafama göre bir hata oluşturdum.");
} catch (Exception $e) {
  echo $e->getMessage();
} finally {
    echo "<br>";
  echo "Yukardaki sorunlar umrumda değil beni ekranda her türlü göreceksiniz.";
}
?>

YAZAR HAKKINDA

26 Yaşında. Araştırmayı seven, bir şeyler öğretmeye meraklı bir Bilgisayar Mühendisi

1 YORUM

بورس

03-June-2023

Hi! I could have sworn I've been to this website before but after checking through some of the post I realized it's new to me. Nonetheless, I'm definitely happy I found it and I'll be bookmarking and checking back frequently!


Yorum Yap

@COPYRIGHT KodlamakLazım Tüm Hakları Saklıdır.