Sobes.tech
Junior

Ի՞նչ է Python-ում արտակարգ իրավիճակների մշակումը։

sobes.tech AI

Պատասխան AI-ից

Python-ում արտակարգ իրավիճակների կառավարումը մեխանիզմ է, որը թույլ է տալիս բռնել և արձագանքել այն սխալներին կամ իրադարձություններին, որոնք խանգարում են ծրագրի նորմալ կատարմանը:

Օգտագործվում է try...except...finally կամ try...except...else...finally բլոկը:

try:
    # Կոդ, որը կարող է առաջացնել արտակարգ իրավիճակ
    result = 10 / 0
except ZeroDivisionError:
    # կոնկրետ արտակարգ իրավիճակի մշակումը
    print("Սխալ: բաժանում զրոյով!")
except Exception as e:
    # ցանկացած այլ արտակարգ իրավիճակի մշակումը
    print(f"Տեղի է ունեցել սխալ: {e}")
else:
    # կատարվում է, եթե try բլոկում սխալ չի եղել
    print("Գործողությունը հաջողությամբ կատարվեց")
finally:
    # միշտ կատարվում է, անկախ արտակարգ իրավիճակներից
    print("Finally բլոկը կատարվեց")

Հիմնական բաղադրիչներ՝

  • try: Կոդի բլոկ, որտեղ սպասվում է հնարավոր արտակարգ իրավիճակ
  • except: Կոդի բլոկ, որը կատարվում է, երբ try-ում տեղի է ունենում կոնկրետ արտակարգ իրավիճակ։ Կարող է օգտագործվել մի քանի except տարբեր տիպերի համար
  • else: (Ընտրովի) Կոդի բլոկ, որը կատարվում է, եթե try-ում արտակարգ իրավիճակ չի եղել
  • finally: (Ընտրովի) Կոդի բլոկ, որը միշտ կատարվում է, անկախ այն բանից, տեղի է ունեցել արտակարգ իրավիճակ կամ ոչ։ Սովորաբար օգտագործվում է ռեսուրսների ազատման համար (օրինակ՝ ֆայլերը փակել)
  • raise: բանալի բառ՝ արտակարգ իրավիճակն հստակորեն հրավիրելու համար
def divide(a, b):
    if b == 0:
        raise ValueError("Բաժանիչը չի կարող լինել զրո")
    return a / b

try:
    divide(10, 0)
except ValueError as e:
    print(f"Անհատական արտակարգ իրավիճակի մշակումը՝ {e}")

Առավելություններ՝

  • բարելավում է ծրագրի հուսալիությունը
  • առանձնացնում է սխալներ առաջացնող կոդը
  • թույլ է տալիս ավելի մաքուր տարբերակել նորմալ կատարման և սխալների մշակման տրամաբանությունը։