Proqramlaşdırma

İ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))    # None

else 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.

Müəllif: Nibras Code