CodeBlanks Logo Icon CodeBlanks

try/catch bloğu

PHP kursu · Orta seviye · Ders 99/115

try/catch ile istisna yakalayıp hata durumunu yönetmeyi öğrenirsin.

try/catch ne işe yarar?

Bazı işlemler hata fırlatabilir: sıfıra bölme, olmayan dosyayı açma, geçersiz tarih. try/catch bu hataları yakalar ve programın çökmesini engeller.

try bloğu riskli kodu çalıştırır. Eğer içeride bir istisna (exception) fırlarsa, PHP normal akışı durdurur ve eşleşen catch bloğuna atlar.

catch parantezinde hangi tür istisnayı yakalayacağın yazılır; $e değişkeni istisna nesnesini taşır.

finally ve çoklu catch

Bir try bloğundan sonra birden fazla catch yazabilirsin; her biri farklı istisna türünü yakalar. PHP, ilk eşleşeni seçer.

finally bloğu istisna olsun veya olmasın her durumda çalışır; dosyayı kapatma veya kaynağı temizleme için kullanılır.

catch (\Exception $e) tüm Exception alt sınıflarını yakalar; özel bir tür yazarsan yalnız onu yakalar.

Uygulama try/catch ile hatayı yakala

safeDivide(10, 0) çağrısı DivisionByZeroError fırlatır. try/catch ile çağır, hatayı yakala ve 'Hata: ' ön ekiyle mesajı yazdır.

Örnek çözümü göster
" . $e->getMessage() . "\n" yaz.
Örnek çözüm:
<?php
// try/catch ile sıfıra bölme hatasını yakala
function safeDivide(int $a, int $b): int {
    return intdiv($a, $b);
}

try {
    echo safeDivide(10, 0) . "\n";
} catch (DivisionByZeroError $e) {
    echo "Hata: " . $e->getMessage() . "\n";
}

Kendini test et

  1. try bloğunda istisna fırlarsa ne olur?

    • Program çöker ve durur
    • Yürüme durur, eşleşen catch bloğuna atlanır
    • Uyarı yazdırılır ve çalışma devam eder
    • Try bloğu baştan çalıştırılır
    Cevabı göster

    Yürüme durur, eşleşen catch bloğuna atlanır — Doğru. İstisna fırlayınca PHP try bloğunu bırakır ve catch'e atlar.

  2. try/catch iskeletini tamamla

    <?php
    ____ {
        risky();
    } catch (\Exception $e) {
        echo $e->getMessage() . "\n";
    }
    
    Cevabı göster
    <?php
    try {
        risky();
    } catch (\Exception $e) {
        echo $e->getMessage() . "\n";
    }
    
  3. try/catch kavramlarını eşleştir

    try
    Riskli kodu çalıştırır
    catch
    İstisnayı yakalar
    finally
    Her durumda çalışır

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