Տարբեր տիպի բացառությունների բռնում Python-ում
Միևնույն կոդում կարող է անհրաժեշտ լինել բռնել տարբեր տիպի բացառություններ:
Ենթադրենք, մեզ անհրաժեշտ է բռնել զրոյի վրա բաժանման բացառությունը: Նմանատիպ սխալի դեպքում առաջանում է բացառություն:
ZeroDivisionError: division by zero
Այն բռնելու համար բացառության անունը պետք է
գրվի except բլոկում:
try:
print(1 / 0)
except ZeroDivisionError:
print('սխալ. մի՛ բաժանիր զրոյի վրա')
Ենթադրենք նաև, որ ունենք ցանկ.
lst = [1, 2, 3]
Եթե try բլոկում գրել կոդ՝ այլ
պոտենցիալ սխալով, օրինակ՝ գոյություն չունեցող տարր դուրս բերելը, ապա բացառությունը,
որը չի բռնվել except բլոկում, կանցնի
հետագա և կտպվի կոնսոլում: Դրա հետևանքով
կանգնեցվում է կոդի աշխատանքը.
lst = [1, 2, 3]
try:
print(lst[4]) # կտպի IndexError: list index out of range
except ZeroDivisionError:
print('սխալ. մի՛ բաժանիր զրոյի վրա')
Նման իրավիճակը լուծելու համար անհրաժեշտ է նշել յուրաքանչյուր բլոկում բացառության համապատասխան տիպի անունը: Ավելացնենք մեր կոդին բացակայող տարրի բացառությունը.
try:
print(lst[4])
except ZeroDivisionError:
print('սխալ. մի՛ բաժանիր զրոյի վրա')
except IndexError:
print('սխալ. տարրը գոյություն չունի')
Տրված է հետևյալ կոդը.
txt = '2'
res1 = txt + 3
res2 = txt1
Գրեք կոդ, որպեսզի բռնեք res1 և res2
փոփոխականներում ներկայացված բացառությունները: