CodeBlanks Logo Icon CodeBlanks

throw ile istisna fırlatma

PHP kursu · Orta seviye · Ders 100/115

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

  1. 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.

  2. 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];
    }
    
  3. 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
  4. 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.

Orta seviye bölümündeki tüm dersler