Menu
Coddy logo textTech

'try...catch' Bloğu

Coddy'nin PHP Journey'sinin Mantık ve Akış bölümünün bir parçası — ders 53 / 68.

PHP kodunuz çökmesine neden olabilecek sorunlarla karşılaştığında, bu durumları kontrollü bir şekilde ele almanın bir yoluna ihtiyaç duyarsınız. try...catch bloğu, istisnalarla (kodunuzdaki ciddi sorunları temsil eden özel hata nesneleri) başa çıkmak için yapılandırılmış bir yaklaşım sunar.

try bloğu, hata verebilecek veya bir istisna fırlatabilecek kodları içerir. Bu blok içinde bir istisna oluşursa, PHP try bloğundaki kalan kodun yürütülmesini anında durdurur ve ilgili catch bloğuna atlar. catch bloğu istisnayı ele alarak, betiğinizin çökmesi yerine çalışmaya devam etmesini sağlar.

<?php
try {
    // İstisna fırlatabilecek kod
    $result = riskyFunction();
    echo "Success!";
} catch (Exception $e) {
    // İstisnayı ele al
    echo "An error occurred: " . $e->getMessage();
}
?>

catch bloğu, neyin yanlış gittiği hakkında bilgi içeren bir Exception nesnesi alır. Hata mesajına getMessage() yöntemini kullanarak erişebilirsiniz. Bu yaklaşım, bir şeyler ters gittiğinde tüm betiğinizin durmasını engeller; hataların nasıl ele alınacağı ve kullanıcılarınızın ne göreceği konusunda size kontrol sağlar.

quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

challenge icon

Görev

Kolay

Bir girdi alacaksınız: yaş değerini temsil eden bir sayı. Girdi, bir yaş için geçersiz olacak şekilde negatif bir sayı olabilir.

Girdiyi okuyun, bir tam sayıya (integer) dönüştürün ve bir try...catch bloğu oluşturun. try bloğunun içinde, yaşın negatif olup olmadığını kontrol edin. Eğer negatifse, "Age cannot be negative" mesajıyla yeni bir Exception fırlatın. Eğer yaş geçerliyse (sıfır veya pozitif), "Valid age: " ve ardından yaş değerini yazdırın.

catch bloğunda, getMessage() metodunu kullanarak "Error: " ve ardından istisna mesajını yazdırarak istisnayı ele alın.

Girdi formatı: Bir tam sayı içeren tek bir satır (örnek: 25 veya -5)

Beklenen çıktı:

  • Eğer yaş geçerliyse: Valid age: ve ardından yaş değeri
  • Eğer yaş negatifse: Error: Age cannot be negative

Kopya kağıdı

try...catch bloğu PHP'deki istisnaları yöneterek, hatalar oluştuğunda betiklerin çökmesini engeller.

Temel sözdizimi:

<?php
try {
    // İstisna fırlatabilecek kod
    $result = riskyFunction();
    echo "Success!";
} catch (Exception $e) {
    // İstisnayı ele al
    echo "An error occurred: " . $e->getMessage();
}
?>

try bloğu potansiyel olarak sorunlu kodları içerir. Eğer bir istisna oluşursa, PHP bir Exception nesnesi alan catch bloğuna atlar. Hata mesajına erişmek için getMessage() kullanın.

İstisnaları manuel olarak şu şekilde fırlatabilirsiniz:

throw new Exception("Custom error message");

Kendin dene

<?php
// Girdiyi oku
$age = intval(fgets(STDIN));

// YAPILACAK: Kodunuzu aşağıya yazın
// Yaşı doğrulamak için bir try...catch bloğu oluşturun


?>
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Mantık ve Akış bölümündeki tüm dersler