CodeBlanks Logo Icon CodeBlanks

Hata yönetimi

try/except ile geçersiz girdileri yakalarsın.

try/except ile hata yakalama

Bu derste try/except yapısını taniyacagiz. Bu yapı bir hatayı yakalayıp programın çökmesini engeller:

try:
    result = 10 / 0
except ZeroDivisionError:
    result = 0

try bloğundaki kod hata verirse, Python except bloğuna atlar. Hata türü ZeroDivisionError ile eşleşirse o blok çalışır.

try/except'in ayrıntısını ayrı bir grupta göreceğiz. Burada bölme hatasını güvenle yakalamak için kullanacağız.

Güvenli bölme

Şimdi divide fonksiyonunu try/except ile güvenli hale getireceğiz. Eğer bölen sıfırsa hatayı yakalayıp 0 dondurecegiz:

def divide(x, y):
    try:
        return x / y
    except ZeroDivisionError:
        return 0

Bu yöntem if kontrolünden daha Pythonic sayılır: hatayı önceden kontrol etmek yerine, olusmasina izin verip yakalamak.

Bu yaklaşım "af dilemek izin istemekten daha kolay" felsefesine uyar.

Uygulama Güvenli divide ekle

Önceki fonksiyonlar hazır. divide fonksiyonunu try/except ile yeniden yaz: try: return x / y, except ZeroDivisionError: return 0. Sonra print(divide(a, b)) ve print(divide(a, 0)) yazdır.

Başlangıç kodu

main.py
# Hesap makinesi - iki sayi tanımla
a = 10
b = 5
print(a, b)
def add(x, y):
    return x + y
def subtract(x, y):
    return x - y
def multiply(x, y):
    return x * y
print(add(a, b))
print(subtract(a, b))
print(multiply(a, b))
# Guvenli divide fonksiyonunu ekle

Örnek çözüm

main.py
def divide(x, y):
    try:
        return x / y
    except ZeroDivisionError:
        return 0
print(divide(a, b))
print(divide(a, 0))

Beklenen çıktı

10 5
15
5
50
2.0
0

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 except bloğunu tamamla

Soru
try:
    result = 10 / 0
____ ZeroDivisionError:
    result = 0
Cevap
try:
    result = 10 / 0
except ZeroDivisionError:
    result = 0

Açıklama: except ile hata türü yakalanır.

2 try bloğunda hata olursa ne olur?

  • Program çöker
  • Hata görmezden gelinir
  • try tekrar çalışır
  • except bloğu çalışır Doğru cevap

Açıklama: Hata olursa except bloğu çalışır.

3 Hata yönetimi kavramlarını eşleştir

Kavram Anlamı
try Denenecek kod
except Hata yakalama
ZeroDivisionError Bölme hatası
return 0 Hata sonrası değer

Başlangıç bölümündeki tüm dersler