Programlama

İstisnalar: try, except, finally

Hatayı yakalamak, raise ve with ifadesi.

Tüm dersler · Python dersleri: sıfırdan öğren

try ve except

İstisna, program çalışırken oluşan hatadır. Yakalamazsan program durur. Riskli kodu try içine yaz, except'te ne yapılacağını belirt. Mümkün olduğunca belirli hata tipini yakala.

def safe_divide(a, b):
    try:
        return a / b
    except ZeroDivisionError:
        return None

print(safe_divide(10, 2))   # 5.0
print(safe_divide(1, 0))    # None

else ve finally

else yalnızca hata olmadığında çalışır. finally ise hata olsa da olmasa da çalışır ve dosyayı kapatmak gibi temizlik işleri için uygundur.

try:
    value = int("42")
except ValueError:
    print("not a number")
else:
    print("parsed", value)
finally:
    print("done")

Kendi hatanı fırlatmak

Fonksiyona yanlış değer gelirse raise ile net mesajlı bir hata fırlat. Daha kesin olması için kendi hata sınıfını da tanımlayabilirsin.

class NegativeAmount(Exception):
    pass

def withdraw(balance, amount):
    if amount < 0:
        raise NegativeAmount("amount must be positive")
    return balance - amount

try:
    withdraw(50, -5)
except NegativeAmount as err:
    print("Error:", err)
  • Çıplak except: yazma, hataları gizler.

Yazar: Nibras Code