Կարող եք ձեր կոդը փորձարկել այստեղ
Python-ում ծրագրավորելիս կարող ենք հանդիպել երկու տեսակի սխալների. Առաջին տեսակը շարահյուսական սխալներն են : Դրանք հայտնվում են ծրագրավորման լեզվի շարահյուսության խախտման արդյունքում՝ սկզբնական կոդը գրելիս։ Զարգացման միջավայրում աշխատելիս, ինչպիսին է PyCharm-ը, IDE-ն ինքը կարող է հետևել շարահյուսական սխալներին և ինչ-որ կերպ ընդգծել դրանք:
Երկրորդ տեսակի սխալները գործարկման ժամանակի սխալներն են : Դրանք հայտնվում են արդեն ծրագրի կատարման ժամանակ։ Նման սխալները կոչվում են նաև բացառություններ: Օրինակ, նախորդ թեմաներում մենք նայեցինք տողը թվի վերածելուն.
string = "5"
number = int(string)
print(number)
Այս սցենարը հաջողությամբ կկատարվի, քանի որ «5» տողը հեշտությամբ կարող է վերածվել թվի: Այնուամենայնիվ, բերենք մեկ այլ օրինակ.
string = "hello"
number = int(string)
print(number)
Այս սկրիպտը գործարկելու դեպքում ValueError բացառություն կստեղծվի, քանի որ «բարև» տողը չի կարող փոխարկվել թվի.
ValueError: invalid literal for int() with base 10: 'hello'
Մի կողմից, այստեղ ակնհայտ է, որ տողը թիվ չի ներկայացնում, բայց մենք կարող ենք գործ ունենալ օգտվողի մուտքագրման հետ, որը կարող է նաև մուտքագրել մի բան, որը հենց այնպես չէ, ինչ մենք ակնկալում ենք.
string = input("Введите число: ")
number = int(string)
print(number)
Երբ բացառություն է տեղի ունենում, ծրագիրը ընդհատվում է, և նման պահվածքից խուսափելու և Python-ում բացառությունները լուծելու համար կա try..except կառուցում:
try...except
try...except կոնստրուկցիան ունի հետևյալ պաշտոնական սահմանումը.
try:
content
except [Exception]:
content
Բոլոր հիմնական ծածկագրերը, որոնք կարող են բացառություն առաջացնել, տեղադրվում են փորձել բանալի բառից հետո : Եթե այս կոդը բացառություն է անում, ապա փորձի բլոկի կոդը ընդհատվում է, և կատարումը տեղափոխվում է բացառության բլոկ:
Except հիմնաբառից հետո կարող եք կամայականորեն նշել, թե որ բացառությունն է կարգավորվելու (օրինակ՝ ValueError կամ KeyError): Բառից հետո, բացի հաջորդ տողից, բացի բլոկում կան հայտարարություններ, որոնք կատարվում են, երբ բացառություն է տեղի ունենում:
Եկեք նայենք բացառությունների մշակմանը, օգտագործելով տողը թվի վերածելու օրինակը.
try:
number = int(input("Number: "))
print("Number:", number)
except:
print("Exception")
print("End program")
Ինչպես երևում է վահանակի ելքից, երբ մուտք եք գործում տող, թիվը չի ուղարկվում վահանակ, և ծրագրի կատարումը տեղափոխվում է բացառությամբ բլոկ:
Այժմ ամեն ինչ լավ է աշխատում, բացառություն չի բարձրացվում, և, հետևաբար, բացի բլոկը չի կատարվում:
Finally
Բացառությունները մշակելիս կարող եք նաև օգտագործել կամընտիր վերջնական արգելափակում : Այս բլոկի տարբերակիչ առանձնահատկությունն այն է, որ այն իրականացվում է անկախ նրանից, թե արդյոք բացառություն է արվել.
try:
number = int(input("Введите число: "))
print("Number:", number)
except:
print("Exception")
finally:
print("Finally")
print("End program")
Սովորաբար, վերջնական բլոկը օգտագործվում է օգտագործվող ռեսուրսներն ազատելու համար, օրինակ՝ ֆայլերը փակելու համար:
Հարկ է նշել, որ վերջնական բլոկը բացառություններ չի մշակում, և եթե մենք օգտագործում ենք այս բլոկը առանց բացառության բլոկի , ապա եթե սխալ առաջանա, հավելվածը կխափանվի, ինչպես հետևյալ դեպքում՝ թիվը զրոյի բաժանելիս.
try:
number = 3/0
print(number)
finally:
print("End try")
print("end program")
Մեկնաբանություն գրելու համար խնդրում ենք մուտք լինել