İ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)) # Noneelse 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.