Բացառություններ Python-ում. Ներածություն
Այս բաժնում կքննարկվեն բացառությունները Python-ում: Սկզբում անհրաժեշտ է հասկանալ, թե դրանք ինչ են ներկայացնում:
Որևէ ծրագիր գրելիս ծրագրավորողը անուղղակիորեն հույս է ունենում, որ օգտագործվող ծրագրային-տեխնիկական մեխանիզմները կաշխատեն ճիշտ:
Սակայն դա միշտ չէ, որ այդպես է: Ցանցի միջոցով տվյալներ փոխանցելիս կապը խզվում է, և տվյալները մեզ հասնում են ոչ ճիշտ տեսքով, կամ ընդհանրապես չեն հասնում: Ֆայլը գրելիս պարզվում է, որ հատկացված տեղը կոշտ սկավառակի վրա սպառվել է, և ֆայլը չի կարող գրվել: Ֆայլը կարդալիս պարզվում է, որ այդպիսի ֆայլ գոյություն չունի, և մեզ ոչ մի տեղից կարդալու բան չկա: Տվյալները տպիչով տպելիս տեղի է ունենում կաբելի խզում, որն միացնում է տպիչը և համակարգիչը:
Նկարագրված բոլոր իրավիճակներն ունեն ընդհանուր էություն. Տեղի է ունենում ինչ-որ խափանում, որն հանգեցնում է նախատեսված գործողությունը ավարտելու անհնարինությանը կամ անիմաստությանը:
Լինում են նաև իրավիճակներ, երբ տեղի է ունենում ինչ-որ սխալ, որն խափանում չէ: Օրինակ, դուք հարցնում եք օգտատիրոջից նրա email-ը, և նա մուտքագրում է email ոչ ճիշտ ֆորմատով: Հասկանալի է, որ մեր ծրագիրը չի կարող շարունակել մշակել email-ը, քանի որ այն ճիշտ չէ: Սակայն, այնուամենայնիվ, սա բացառիկ իրավիճակ չէ: Մեր ծրագիրը կարող է ինքնուրույն ուղղել իրավիճակը. այն կտպի սխալի մասին հաղորդագրություն, և օգտատերը կկրկնի իր մուտքագրումը:
Իրականում խափանման և ոչ խափանման տարբերությունը բավականին անորոշ է: Իրադարձություն, որը մի ծրագիր կարող է մեկնաբանել որպես բացառիկ իրավիճակ, մեկ այլ ծրագիր կարող է մեկնաբանել որպես ինչ-որ սխալ, որի հետ այն կարող է հաղթահարել:
Չափանիշն այստեղ հետևյալն է. եթե խնդրի առաջացման դեպքում ձեր ծրագիրը կարող է շարունակել կատարել այն, ինչի համար այն նախատեսված է, ապա սա բացառիկ իրավիճակ չէ, իսկ եթե ոչ, ապա այո, սա բացառություն է:
Օրինակ, մենք ունենք ծրագիր, որը պետք է հարցնի օգտատիրոջ email-ը: Եթե օգտատերը մուտքագրել է email ոչ ճիշտ ֆորմատով, դա խափանում չէ: Սա սպասված խնդիր է, և մեր ծրագիրը կհարցնի օգտատիրոջից email այնքան անգամ, մինչև նա այն ճիշտ չմուտքագրի:
Ենթադրենք, մեր ծրագիրը, որը հարցնում է email-ը, պետք է նաև ուղարկի այդ ճիշտ email-ը ինտերնետի միջոցով: Այդ դեպքում պարզվում է, որ ինտերնետը չի աշխատում: Սա արդեն խնդիր է. ծրագիրը ոչ մի կերպ չի կարող ուղարկել տվյալները ինտերնետի միջոցով, եթե ինտերնետը չի աշխատում: Ծրագիրը, այնուամենայնիվ, կարող է շարունակել իր կատարումը. այն կարող է տպել խնդրի մասին տեղեկատվություն, կրկնել ուղարկման փորձը որոշ ժամանակ անց, և այլն: Սակայն այդ գործողություններն արդեն ամբողջությամբ այն չեն, ինչի համար ծրագիրն էր նախատեսված, քանի որ հիմնական գործողությունը՝ email-ի ուղարկումը, ծրագիրը չի կարողանա կատարել:
Դրա հիման վրա, շատ հաճախ այն մեկնաբանությունը, թե ինչ պահվածքը կհամարվի նորմալ, իսկ ինչը՝ բացառիկ, կախված է ծրագրավորողի առջև դրված խնդիրներից: