Kodėl Programos Užstringa

Kodėl Programos Užstringa
Kodėl Programos Užstringa

Video: Kodėl Programos Užstringa

Video: Kodėl Programos Užstringa
Video: Kaip pagreitinti savo kompiuterį 100% ?? / How to increase your Computer performance by 100% ?? 2024, Lapkritis
Anonim

Įvairių užduočių, šiandien sprendžiamų asmeninių kompiuterių pagalba, suteikia didžiulis taikomųjų programų rinkinys. Darbo su programine įranga patogumas daugiausia priklauso nuo jos patikimumo, kuris išreiškiamas nesant avarinių situacijų. Tačiau daugelis programų sugenda netinkamiausiu momentu. Kodėl?

Kodėl
Kodėl

Išimties mechanizmas naudojamas norint stebėti ir tvarkyti ypatingas, nenormalias ar klaidingas situacijas, kurios kyla valdant šiuolaikines operacines sistemas veikiančias kompiuterines programas. Išimtys gali būti aparatinė įranga (metama procesoriaus) ir programinė įranga (išmesta pačios programos ar kokio nors papildinio išorinio komponento).

Nepaisant tipo, išimtis gali būti sugauta ir tinkamai tvarkoma. Nepagautos išimtys patenka į šakninio vykdymo laiko bibliotekos tvarkyklę arba operacinės sistemos įdiegtą tvarkyklę. Tokiu atveju programa užstringa pranešimu arba nenormaliu nutraukimo langu (sistemoje „Windows“). Jei operacinės sistemos tvarkyklė neveikė (pavyzdžiui, ji buvo sąmoningai pašalinta), programa „tyliai užstringa“. Taigi programos sugenda dėl išimčių, kurių negalima tvarkyti. Išimčių atsiradimo priežastys yra skirtingos.

Daugeliu atvejų programos sugenda dėl savo kodo vykdymo, kuriame yra aiškių ar numanomų įgyvendinimo klaidų. Galimų ekstremalių situacijų sąrašas yra labai ilgas. Tai yra klasikinės slankiojo kablelio skaičių operacijų klaidos (pvz., Padalijimas iš 0) ir darbo su atmintimi klaidos (skaitymas ar rašymas ne proceso adreso erdvėje, prieiga prie saugomų puslapių, rašymas į tik skaitomą atminties sritį), perpildymo kaminas dėl begalinio rekurso ir kt. Šiais atvejais išmetamos aparatūros ar operacinės sistemos išimtys.

Numanomos klaidos apima įvairius nepakankamo įvesties duomenų filtravimo atvejus, žymeklio verčių nepatvirtinimą ir daug daugiau. Tokie trūkumai lemia išskirtines situacijas tik tam tikrais atvejais.

Diegimo klaidų taip pat galima rasti išoriniuose komponentuose, kuriuos naudoja programa. Pavyzdžiui, dinaminėse bibliotekose, teikiančiose reikiamą funkcionalumą, arba papildomų modulių. Programos kodas, kuris yra netiesiogiai įkeltas į proceso adreso erdvę (pavyzdžiui, norint perimti tam tikras API funkcijas), taip pat gali sukelti programos strigimą.

Daugelyje komponentų ir bibliotekų (pvz., „ADO“sistemoje „Windows“) pranešimų apie klaidas prioritetas yra programinės išimties mechanizmas. Jei šios rūšies programoje nėra išimtinių išimčių arba jos nevisiškai tvarkomos, jos gali sugesti net visiškai nekenksmingose situacijose (pvz., Prarandamas ryšys su duomenų baze).

Rekomenduojamas: