CodeBlanks Logo Icon CodeBlanks

else ve finally

else ve finally bloklarını öğrenirsin.

else ve finally

else bloğu yalnızca try'da hata OLMADIĞINDA çalışır. finally bloğu her durumda çalışır — hata olsun ya da olmasın:

try:
    x = 10 / 2
except ZeroDivisionError:
    print("sıfıra bölme")
else:
    print(x)       # 5.0
finally:
    print("bitti")  # her zaman

else, try başarılı olduğunda kod çalıştırır. finally, temizlik (dosya kapatma, kaynak bırakma) için kullanılır.

Her ikisi de isteğe bağlıdır ama finally en güvenli bloktur.

else ve finally farkı

else yalnızca try başarılıysa çalışır — hata olursa atlanır. finally ise hata olsa da olmasa da çalışır:

# hata olmazsa: else + finally
# hata olursa: except + finally (else ATLANIR)

else içine başarıya bağlı kod koyulur (örneğin sonucu yazdırma). finally içine her durumda çalışması gereken kod koyulur (örneğin dosyayı kapatma).

Bu ayrım, temizlik ve başarı kodunu net biçimde ayırır.

Uygulama try/else/finally bir arada

try bloğu içinde result = 10 / 2 yaz. except ZeroDivisionError: bloğu içinde print("hata") yaz. else: bloğu içinde print(result) yaz. finally: bloğu içinde print("bitti") yaz.

Başlangıç kodu

main.py
# try/except/else/finally yaz
# başarılı bölme ve temizlik

Örnek çözüm

main.py
try:
    result = 10 / 2
except ZeroDivisionError:
    print("hata")
else:
    print(result)
finally:
    print("bitti")

Beklenen çıktı

5.0
bitti

Soru ve cevaplar

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

1 finally anahtar sözcüğünü tamamla

Soru
try:
    x = 10 / 2
____:
    print("bitti")
Cevap
try:
    x = 10 / 2
finally:
    print("bitti")

Açıklama: finally bloğu her durumda çalışır.

2 else/finally eşleştir

Kavram Anlamı
else Hata yoksa çalışır
finally Her zaman çalışır
except Hata olursa çalışır
try Korumalı kod

3 else bloğu ne zaman çalışır?

  • Her zaman
  • Sadece hata olursa
  • Sadece hata olmazsa Doğru cevap
  • Hiçbir zaman

Açıklama: else yalnızca try bloğunda hata olmadığında çalışır.

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