PHP'de Hata Yönetimi: set_error_handler ve set_exception_handler

  • Konbuyu başlatan Konbuyu başlatan sysuser
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 0
  • Görüntüleme Görüntüleme 15

sysuser

PREMİUM
Katılım
9 Kas 2025
Mesajlar
174
Tepki puanı
4
Cinsiyet
Kadın

PHP'de Hata Yönetimi: set_error_handler ve set_exception_handler​


Production ortamında hatalar kullanıcıya gösterilmemeli; ancak kayıt altına alınmalıdır. Özel hata işleyiciler bu ikisini birbirinden ayırır.

Hata İşleyici​

PHP:
set_error_handler(function(int $errno, string $errstr, string $file, int $line): bool {
    if (!(error_reporting() & $errno)) return false;
    throw new ErrorException($errstr, 0, $errno, $file, $line);
});

Bu yaklaşım PHP uyarılarını da exception'a dönüştürür; sessiz hatalar yakalanır.

Exception İşleyici​

PHP:
set_exception_handler(function(Throwable $e): void {
    logger()->critical($e->getMessage(), ['trace' => $e->getTraceAsString()]);
    http_response_code(500);
    echo json_encode(['error' => 'Sunucu hatası']);
    exit;
});

register_shutdown_function ile fatal error'lar da yakalanabilir. Monolog ve benzeri kütüphanelerle bu işleyiciler merkezi log sistemine bağlanır.
 
Geri
Üst