throw ile istisna fırlatma
throw new Exception() ile kendi istisnanı fırlatmayı öğrenirsin.
throw ne yapar?
Bazen kendi koşullarında hata fırlatmak istersin: geçersiz yaş, eksik alan, yetkisiz erişim. throw ile istisna fırlatırsın.
throw new Exception('mesaj') yeni bir Exception nesnesi oluşturur ve fırlatır. O anda kod yürütmesi durur; uygun catch bloğu varsa oraya atlar, yoksa betik hata verir.
İstisna nesnesi bir mesaj taşır; catch bunu $e->getMessage() ile okur.
İstisna mesajı ve kodu
Exception yapıcısı iki argüman alır: mesaj ve kod. new Exception('Yaş çok küçük', 18) gibi.
Mesaj, hatanın insan tarafından okunabilir açıklamasıdır. catch bloğunda $e->getMessage() ile alınır; kullanıcıya gösterilir veya log'a yazılır.
Mesaj kısa ve net olmalı: neyin yanlış gittiğini söylemeli. Kod ise sayısal bir tanımlayıcıdır.
Uygulama Yaş kontrolü fırlat ve yakala
checkAge(int $age): void fonksiyonunu tanımla: yaş 18'den küçükse throw new Exception("Yaş çok küçük") fırlat. Sonra try/catch içinde checkAge(15) çağır, hatayı yakala ve mesajı yazdır.
Örnek çözümü göster
void fonksiyonunu tanımla; if ($age < 18) ise throw new Exception("Yaş çok küçük") çağır. Sonra try { checkAge(15); } catch (Exception $e) { echo $e->getMessage() . "\n"; } yaz.
Örnek çözüm:
<?php
// checkAge fonksiyonunu yaz ve try/catch ile çağır
function checkAge(int $age): void {
if ($age < 18) {
throw new Exception("Yaş çok küçük");
}
echo "Hoş geldiniz\n";
}
try {
checkAge(15);
} catch (Exception $e) {
echo $e->getMessage() . "\n";
}
Kendini test et
-
Hangisi geçerli bir throw ifadesidir?
- throw Exception('Hata');
- throw new 'Hata';
- throw new Exception('Hata');
- new throw Exception('Hata');
Cevabı göster
throw new Exception('Hata'); — Doğru. throw new Exception('mesaj') yeni bir istisna oluşturur ve fırlatır.
-
throw ifadesini tamamla
<?php function checkAge(int $age): array { if ($age < 18) { ____ new Exception("Yaş çok küçük"); } return ['ok' => true]; }Cevabı göster
<?php function checkAge(int $age): array { if ($age < 18) { throw new Exception("Yaş çok küçük"); } return ['ok' => true]; } -
throw ve Exception kavramlarını eşleştir
- throw
- İstisnayı fırlatır
- new Exception()
- Yeni istisna oluşturur
- getMessage()
- Mesajı döndürür
- catch
- İstisnayı yakalar
-
throw çağrılınca ne olur?
- Kod normal akışına devam eder
- Bir uyarı yazdırılır
- Yalnızca bir log kaydı düşer
- Yürüme durur ve çağıran bloğa iletilir
Cevabı göster
Yürüme durur ve çağıran bloğa iletilir — Doğru. throw yürümeyi durdurur ve istisna çağıran bloğa iletilir; catch varsa yakalanır.