Birden Fazla İstisnayı Yönetme
Coddy'nin Python Journey'sinin Logic & Flow bölümünün bir parçası — ders 65 / 78.
Python'da, farklı türdeki istisnaları ayrı except bloklarında ele alabiliriz. Bu, meydana gelen belirli hataya bağlı olarak farklı şekilde yanıt vermemizi sağlar.
Temel bir try-except yapısıyla başlayın:
try:
# İstisna fırlatabilecek kod
pass
except Exception as e:
# Herhangi bir istisnayı ele al
passBirden fazla istisnayı ele almak için belirli except blokları ekleyin:
try:
number = int(input("Enter a number: "))
result = 10 / number
print(result)
except ValueError:
print("That's not a valid number!")
except ZeroDivisionError:
print("Cannot divide by zero!")Ayrıca tek bir except bloğunda birden fazla istisna türünü yakalayabilirsiniz:
try:
# Bazı kodlar
pass
except (ValueError, TypeError):
print("Invalid input type!")except bloklarının sırası önemlidir - her zaman daha spesifik istisnaları daha genel olanlardan önce yerleştirin.
Görev
KolayAşağıdaki işlemleri gerçekleştiren process_data adında bir fonksiyon oluşturun:
- Potansiyel veriyi temsil eden bir dize (string) girdisi alır
- Bunu bir tam sayıya (integer) dönüştürmeye çalışır, ardından 100'ü bu tam sayıya böler
- Sonucu döndürür
- En az 3 olası istisnayı (exception) ele alır:
- Girdi bir tam sayıya dönüştürülemiyorsa
ValueError("Input must be a number!" yazdırın) - Girdi 0 ise
ZeroDivisionError("Cannot divide by zero!" yazdırın) - Genel bir işleyici ile diğer tüm istisnalar ("An unexpected error occurred!" yazdırın)
- Girdi bir tam sayıya dönüştürülemiyorsa
Kopya kağıdı
Birden fazla except bloğu kullanarak farklı istisna türlerini yönetin:
try:
number = int(input("Enter a number: "))
result = 10 / number
print(result)
except ValueError:
print("That's not a valid number!")
except ZeroDivisionError:
print("Cannot divide by zero!")Tek bir except bloğunda birden fazla istisna türünü yakalayın:
try:
# Bazı kodlar
pass
except (ValueError, TypeError):
print("Invalid input type!")except bloklarının sıralamasında her zaman daha spesifik istisnaları daha genel olanlardan önce yerleştirin.
Kendin dene
def process_data(input_string):
try:
# Giriş dizesini bir tam sayıya dönüştürmeyi dene
# 100'ü giriş değerine bölerek hesapla
# Sonucu döndür
except ValueError:
# Girişin bir tam sayıya dönüştürülemediği durumu ele al
except ZeroDivisionError:
# Girişin sıfır olduğu durumu ele al
except:
# Diğer tüm beklenmedik istisnaları ele al
return NoneBu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Logic & Flow bölümündeki tüm dersler
1Değişken Keşfi
SabitlerÇoklu Değişken AtamalarıDeğişken TakasıYer Tutucu DeğişkenlerSayıları YuvarlamaListe Tür Dönüşümü4Rehber Uygulaması
Menüyü GörüntüleKişi Ekle7Kümeler Bölüm 2
Matematiksel İşlemler Bölüm 1Matematiksel İşlemler Bölüm 2Özet - Hazine AvıAlt Kümeler ve Üst KümelerKümeler Üzerinde YinelemeÖzet - Turnuva Takipçisi10Temel List Comprehension Yapıları
SözdizimiBasit Listeler OluşturmaKoşul EklemeVeri Toplulaştırma KullanımıÖzet - Liste EviÖzet - Özgürlük Elementleri13Envanter Yönetim Sistemi
Projeye Genel BakışÖğe Ekle2Sözlükler Bölüm 1
Sözlük Nedir?Sözlük OluşturmaDeğerlere ErişmeSözlükleri DeğiştirmeÖzet - Tarif Yöneticisi5İleri Seviye Karar Yapıları
Ternary OperatörüÜyelik KontrolleriKimlik KontrolleriGirintileme HatalarıÖzet - Tatil Filtresi8Öğrenci Kayıt Yöneticisi
Projeye Genel BakışÖğrenci Ekle11İleri Seviye Fonksiyonlar
Birden Fazla Değer DöndürmeLambda Fonksiyonları Bölüm 1Lambda Fonksiyonları Bölüm 2Tekrar Görevi - Lambda ile SıralamaÖzyinelemeli Fonksiyonlar Bölüm 1Özyinelemeli Fonksiyonlar Bölüm 2Tekrar - İç İçe Listeleri Toplama14Yüksek Mertebeden Fonksiyonlar
Map FonksiyonuFilter FonksiyonuÖzet - E-posta DoğrulayıcıÖzet - Sayı İşleyici3Sözlükler Bölüm 2
Sözlük Metotlarıİç İçe SözlüklerAnahtar KontrolüSözlüklerde DöngülerÖzet - Frekans Sayacı9İleri Düzey Veri Toplulaştırma
Toplam KullanımıMinimum ve Maksimumu BulmaVerileri Verimli SıralamaÖzet - Dictionary Sıralayıcı12Temel Hata Yönetimi
Hata Yönetimi Nedir?Try ve Except BloğuBirden Fazla İstisnayı YönetmeÖzet - Alışveriş Sepeti Hataları