İstisnalar: try, except, finally
Xətanı tutmaq, raise və with ifadəsi.
Bütün dərslər · Python dərsləri: sıfırdan öyrən
try və except
İstisna proqram işləyərkən baş verən xətadır. Onu tutmasan proqram dayanır. try blokunda riskli kodu yaz, except-də nə edəcəyini göstər. Mümkün qədər konkret xəta tipini tut.
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 və finally
else yalnız xəta olmayanda işləyir. finally isə xəta olsa da olmasa da icra olunur və təmizlik işləri (faylı bağlamaq kimi) üçün yaxşıdır.
try:
value = int("42")
except ValueError:
print("not a number")
else:
print("parsed", value)
finally:
print("done")Öz xətanı qaldırmaq
Funksiyaya yanlış qiymət gəlirsə, raise ilə aydın mesajlı xəta qaldır. Daha dəqiq olması üçün öz xəta sinfini də yarada bilərsən.
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)- Çılpaq except: yazma, xətaları gizlədir.