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.