Ինչու են ծրագրերը խափանում

Ինչու են ծրագրերը խափանում
Ինչու են ծրագրերը խափանում

Video: Ինչու են ծրագրերը խափանում

Video: Ինչու են ծրագրերը խափանում
Video: Ընդդիմադիրները բացատրություն են պահանջում, թե ինչու են ոստիկանները տեղափոխվում երթուղային տաքսիներով 2024, Նոյեմբեր
Anonim

Անհատական համակարգիչների միջոցով այսօր լուծված առաջադրանքների բազմազանությունն ապահովվում է կիրառական ծրագրերի հսկայական փաթեթի առկայությամբ: Րագրաշարի հետ աշխատելու հարմարավետությունը մեծապես կախված է դրա հուսալիությունից, որն արտահայտվում է արտակարգ իրավիճակների բացակայության պայմաններում: Այնուամենայնիվ, շատ ծրագրեր խափանում են ամենաանպատեհ պահին: Ինչո՞ւ

Ինչու
Ինչու

Բացառության մեխանիզմը օգտագործվում է հատուկ, աննորմալ կամ սխալ իրավիճակները հետևելու և կարգավորելու համար, որոնք առաջանում են ժամանակակից գործավար համակարգերի վերահսկողության տակ գտնվող համակարգչային ծրագրերի շահագործման ընթացքում: Բացառությունները կարող են լինել ապարատային (պրոցեսորի կողմից նետված) և ծրագրային ապահովման (գցված բուն հավելվածի կողմից կամ մի քանի plug-in արտաքին բաղադրիչի կողմից):

Անկախ տեսակից, բացառությունը կարելի է բռնել և ճիշտ վարվել: Չբռնված բացառությունները գնում են արմատային գործարկման ժամանակի գրադարանի սպասարկողին կամ օպերացիոն համակարգի կողմից տեղադրված կարգավորիչին: Եթե դա տեղի ունենա, ծրագիրը խափանվում է հաղորդագրության կամ աննորմալ դադարեցման պատուհանի հետ (Windows- ում): Եթե օպերացիոն համակարգի կարգավարը չի աշխատել (օրինակ, այն դիտավորյալ հեռացվել է), ծրագիրը «լուռ խափանում է»: Այսպիսով, ծրագրերը խափանվում են բացառությունների պատճառով, որոնք հնարավոր չէ մշակել: Բացառությունների առաջացման պատճառները տարբեր են:

Դեպքերի ճնշող մեծամասնությունում ծրագրերը խափանվում են իրենց սեփական կոդերի կատարման պատճառով, որոնք պարունակում են բացահայտ կամ անուղղակի կատարման սխալներ: Արտակարգ իրավիճակների հնարավոր պատճառների ցանկը շատ երկար է: Դրանք երկուսն էլ լողացող կետի թվերի վրա գործողությունների դասական սխալներ են (օրինակ ՝ բաժանումը 0-ի վրա) և հիշողության հետ աշխատելու սխալներ (պրոցեսների հասցեի տարածքից դուրս կարդալ կամ գրել, պաշտպանված էջեր մուտք ունենալ, գրել միայն կարդալու հիշողության տարածք):, անսահման ռեկուրսիայի պատճառով հորդառատ կույտ և այլն: Այս դեպքերում նետվում են ապարատային բացառությունները կամ գործառնական համակարգի բացառությունները:

Անուղղակի սխալները ներառում են մուտքային տվյալների անբավարար զտման, ցուցիչի արժեքների վավերացման բացակայության և շատ ավելին տարբեր դեպքեր: Նման թերությունները բացառիկ իրավիճակների են հանգեցնում միայն որոշակի դեպքերում:

Կատարման սխալներ կարելի է գտնել նաև հավելվածի կողմից օգտագործվող արտաքին բաղադրիչներում: Օրինակ ՝ դինամիկ գրադարաններում, որոնք ապահովում են անհրաժեշտ ֆունկցիոնալությունը կամ լրացուցիչ մոդուլները: Programրագրի կոդը, որն անուղղակիորեն բեռնված է գործընթացի հասցեների տարածքում (օրինակ ՝ որոշակի API գործառույթներ կասեցնելու համար) կարող է նաև հանգեցնել ծրագրի խափանմանը:

Շատ բաղադրիչներ և գրադարաններ (օրինակ, ADO- ն Windows- ում) օգտագործում են ծրագրային բացառության մեխանիզմը `որպես սխալների հաղորդման գերակայություն: Բացառությունների բացակայությունը կամ թերի վարումը այս տեսակի կիրառման կողմից կարող է հանգեցնել դրա խափանմանը նույնիսկ լիովին անվնաս իրավիճակներում (օրինակ ՝ տվյալների շտեմարանին կապի կորուստ):

Խորհուրդ ենք տալիս: