Özel Bir İstisna Oluşturma
Coddy'nin PHP Journey'sinin Mantık ve Akış bölümünün bir parçası — ders 56 / 68.
PHP'nin yerleşik Exception sınıfı genel hata yönetimi için iyi çalışsa da, kendi özel istisna sınıflarınızı oluşturmak çok daha spesifik ve anlamlı hata mesajları sağlar. Özel istisnalar, kodunuzdaki farklı türdeki sorunları ayırt etmenize ve bunları uygun şekilde yönetmenize yardımcı olur.
Özel bir istisna oluşturmak için, extends anahtar kelimesini kullanarak PHP'nin temel Exception sınıfını genişletirsiniz. Bu kalıtım, özel istisnanıza standart istisnanın tüm işlevselliğini kazandırırken, kendi özel davranışınızı eklemenize veya sadece daha açıklayıcı bir isim sağlamanıza olanak tanır.
<?php
class InvalidEmailException extends Exception {
// Sınıf boş olabilir - her şeyi Exception sınıfından miras alır
}
// Ayrıca özel özellikler veya yöntemler de ekleyebilirsiniz
class CustomException extends Exception {
public function getCustomMessage() {
return "Custom error: " . $this->getMessage();
}
}
?>Özel istisnaların gücü, açıklayıcı adlarında ve belirli istisna türlerini yakalama yeteneğinde yatar. Genel bir Exception yakalamak yerine, InvalidEmailException, DatabaseConnectionException veya oluşturduğunuz başka herhangi bir özel istisnayı yakalayabilirsiniz. Bu, hata yönetiminizi daha kesin ve kodunuzu daha sürdürülebilir hale getirir.
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: bir istisna sınıfı adını temsil eden bir dize. Bu girdi, özel istisna sınıfınız için ad olarak kullanılması gereken tek bir kelime olacaktır (örnek: NegativeBalanceException veya InvalidUsernameException).
Girdiyi okuyun ve sağlanan adı kullanarak özel bir istisna sınıfı oluşturun. Özel istisna sınıfınız PHP'nin temel Exception sınıfını genişletmelidir. Sınıfı oluşturduktan sonra, "Custom exception created: " ve ardından girdi olarak aldığınız sınıf adını yazdırın.
Giriş formatı: İstisna sınıfı adını temsil eden bir dize içeren tek bir satır (örnek: InvalidAgeException)
Beklenen çıktı: Custom exception created: ve ardından istisna sınıfı adı
Kopya kağıdı
PHP'de özel istisnalar oluşturmak için, extends anahtar kelimesini kullanarak temel Exception sınıfını genişletin:
<?php
class InvalidEmailException extends Exception {
// Sınıf boş olabilir - Exception sınıfından her şeyi miras alır
}
// Ayrıca özel özellikler veya yöntemler de ekleyebilirsiniz
class CustomException extends Exception {
public function getCustomMessage() {
return "Custom error: " . $this->getMessage();
}
}
?>Özel istisnalar, genel Exception nesneleri yerine belirli istisna türlerini yakalamanıza olanak tanıyarak daha spesifik ve anlamlı hata mesajları sağlar. Bu, hata yönetimini daha kesin ve kodu daha sürdürülebilir hale getirir.
Kendin dene
<?php
// İstisna sınıfı adını oku
$className = trim(fgets(STDIN));
// YAPILACAK: Özel istisna sınıfını oluşturmak için kodunuzu aşağıya yazın
// Sonucu yazdır
echo "Custom exception created: " . $className;
?>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