'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.
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Görev
KolayBir 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
?>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
1İleri Seviye Fonksiyonlar
Anonim FonksiyonlarClosure'lar ve 'use'Ok Fonksiyonları (Arrow Functions)Geri Çağırma (Callback) Fonksiyonları'call_user_func' KullanımıDeğişken FonksiyonlarReferans ile Değer AktarımıÖz Yinelemeli (Recursive) FonksiyonlarÖzet: Fonksiyon Karması4Çok Boyutlu Diziler
2 Boyutlu Dizi Oluşturma2 Boyutlu Dizi Elemanlarına Erişme2 Boyutlu Dizi Elemanlarını Değiştirmeİç İçe Döngülerle Yineleme2 Boyutlu İlişkisel DizilerÖzet: Basit Izgara Egzersizi2İleri Düzey Dizi İşlemleri
'array_push' ile Ekleme'array_pop' ile Silme'array_unshift' ile Ekleme'array_shift' ile Silmeİndisli Dizileri Birleştirmeİlişkisel Dizileri Birleştirme'array_slice' ile Kesit Alma'in_array' ile Değer Kontrolü'array_search' ile Anahtar AramaÖzet: Çalma Listesi Alıştırması5Öğrenci Not Defteri
Proje Kurulumu: Veri YapısıYeni Öğrenci EklemeÖğrenciye Not EklemeÖğrenci Ortalamasını HesaplamaEn Başarılı Öğrenciyi BulmaKarne Oluşturma8Hata ve İstisna Yönetimi
PHP Hatalarını Anlamak'try...catch' Bloğu'finally' BloğuBir İstisna FırlatmakÖzel Bir İstisna OluşturmaÖzel Bir İstisna KullanmaÖzet: Girdi Doğrulama3Dizileri Sıralama
İndisli Dizileri Artan Sırada Sıralamaİndisli Dizileri Azalan Sırada Sıralamaİlişkisel Dizileri Değere Göre Sıralamaİlişkisel Dizileri Anahtara Göre SıralamaDoğal Sıralama (Natural Order)'usort' ile Özel SıralamaÖzet: Liderlik Tablosu Sıralama