Odak modu

PHP Temel

Hata Yönetimi

Hata Yönetimi

Tüm hataların gösterimi için hata raporlamalarını aktif etmeliyiz.

ini_set('display_errors', E_ALL);
ini_set('display_startup_errors', 1);
error_reporting(1);

//phpinfo(); PHP'nin yapılandırması hakkında bilgi verir
Hata Bastırma Operatörü (@)
  • Fatal Error dışındaki hataları bastırmak için kullanılabilir.
// Olmayan bir değişkeni yazdırmaya çalışalım.
echo @$test; // Uyarı vermeyecektir.
try-catch yapısı
<?php

class MyError extends Exception {

    public function Bomb()
    {
        return '<div style="background-color: #000000; color: #ffffff; width: 100%; padding: 20px">
                    <p>'. $this->message .'</p>
                    <p><small>Dosya Yolu: '. $this->file .'</small></p>
                    <p><small>Hata Satırı: '. $this->line .'</small></p>
                </div>';
    }
}
try {
    throw new MyError('Şimdi böyle bir hata yazdırdığımızı düşünelim.');
}catch (MyError $e){
    echo $e->Bomb();
}

?>

img.png

error_reporting()
// Hata raporlamayı tamamen kapatalım
error_reporting(0);

// Basit hataları raporlayalım
error_reporting(E_ERROR | E_WARNING | E_PARSE);

// E_NOTICE de raporlansa iyi olur (ilklendirilmemiş değişkenleri
// veya yanlış yazılmış değişken isimlerini yakalamak için, vb)
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);

// E_NOTICE hariç bütün hatalar raporlansın
// Bu php.ini içindeki öntanımlı değerdir
error_reporting(E_ALL & ~E_NOTICE);

// Tüm PHP hatalarını raporlayalım
error_reporting(E_ALL);

// Tüm PHP hatalarını raporlayalım
error_reporting(-1);

// error_reporting(E_ALL) ile aynı;
ini_set('error_reporting', E_ALL);

set_error_handler

img_2.png


ÖZEL ERROR SAYFAMIZ

img_3.png


SONUÇ:

img_4.png

error_get_last - register_shutdown_function

img_5.png


FATAL ERROR

img_6.png

Background Pattern
Birlikte öğrenelim

Sektörde en çok aranan yazılım becerilerini kazan

Yapay zeka desteği, birebir mentörlük saatleri, canlı dersler ve senin için özel hazırlanmış içeriklerle eksiklerini tamamla, düzenli geri bildirimler al ve öğrenme sürecini en verimli hale getir.

Yunus Emre Kabakcı

Patika+ mezunu

Patika+ Fullstack Web Development Bootcamp mezunumuz Yunus Emre,

3 ay içinde Katar’dan aldığı teklif ile, global bir şirket olan Pavo Group’da işe başladı!


“İçerik zenginliği, mentor desteği, ileriye dönük bir network sağlaması ve dünyada en çok tercih edilen frameworkler üzerinden bir eğitim veriyor olması Patika+’ı tercih etmemin temel sebepleri oldu!“

Test

Yorumlar

Yorum yapabilmek için derse kayıt olmalısın!