Kāpēc Programmas Avarē

Kāpēc Programmas Avarē
Kāpēc Programmas Avarē

Video: Kāpēc Programmas Avarē

Video: Kāpēc Programmas Avarē
Video: 法國重磅報告:中共以「三戰」滲透全球;孟晚舟4大破綻演砸愛國秀,中宣部密令流出;中共自曝孟晚舟間諜身份?| 遠見快評 唐靖遠 | 2021.09.27|Youmaker【直播評論】 2024, Aprīlis
Anonim

Mūsdienās ar personālo datoru palīdzību risināto uzdevumu dažādību nodrošina milzīgs lietojumprogrammu komplekts. Darba ērtība ar programmatūru lielā mērā ir atkarīga no tā uzticamības, kas izpaužas, ja nav ārkārtas situāciju. Tomēr daudzas programmas avarē visnepiemērotākajā brīdī. Kāpēc?

Kāpēc
Kāpēc

Izņēmuma mehānisms tiek izmantots, lai izsekotu un apstrādātu īpašas, nenormālas vai kļūdainas situācijas, kas rodas, darbojoties datorprogrammām mūsdienu operētājsistēmu kontrolē. Izņēmumi var būt aparatūra (izmet procesors) un programmatūra (izmet pati lietojumprogramma vai kāds spraudņa ārējs komponents).

Neatkarīgi no veida izņēmumu var notvert un pareizi rīkoties. Neaizķertie izņēmumi nonāk root izpildlaika bibliotēkas apstrādātājā vai operētājsistēmas instalētajā apstrādātājā. Ja tas notiek, programma avarē ar ziņojumu vai patoloģisku pārtraukšanas logu (sistēmā Windows). Ja operētājsistēmas apstrādātājs nedarbojās (piemēram, tas tika apzināti noņemts), programma "klusi avarē". Tādējādi programmas avarē tādu izņēmumu dēļ, kurus nevar apstrādāt. Izņēmumu rašanās cēloņi ir atšķirīgi.

Pārsvarā vairumā gadījumu programmas sabojājas, izpildot savu kodu, kurā ir tiešas vai netiešas ieviešanas kļūdas. Ārkārtas situāciju iespējamo cēloņu saraksts ir ļoti garš. Tās ir gan klasiskās kļūdas darbībās ar peldošā komata numuriem (piemēram, dalīšana ar 0), gan kļūdas darbā ar atmiņu (lasīšana vai rakstīšana ārpus procesa adrešu telpas, piekļuve aizsargātām lapām, rakstīšana tikai lasāmās atmiņas apgabalā), pārpildes kaudze bezgalīgas rekursijas dēļ utt. Šādos gadījumos tiek izmesti aparatūras vai operētājsistēmas izņēmumi.

Netiešās kļūdas ietver dažādus ievades datu nepietiekamas filtrēšanas gadījumus, rādītāju vērtību validācijas trūkumu un daudz ko citu. Šādi trūkumi rada izņēmuma situācijas tikai atsevišķos gadījumos.

Īstenošanas kļūdas var atrast arī lietojumprogrammas izmantotajos ārējos komponentos. Piemēram, dinamiskās bibliotēkās, kas nodrošina nepieciešamo funkcionalitāti, vai papildinājumu moduļiem. Programmas kods, kas netieši tiek ielādēts procesa adreses telpā (piemēram, lai pārtvertu noteiktas API funkcijas), var izraisīt arī programmas avāriju.

Daudzi komponenti un bibliotēkas (piemēram, ADO operētājsistēmā Windows) par kļūdu ziņošanu kā prioritāti izmanto programmatisko izņēmumu mehānismu. Izņēmumu neesamība vai nepilnīga apstrāde ar šāda veida lietojumprogrammām var izraisīt tā avāriju pat pilnīgi nekaitīgās situācijās (piemēram, savienojuma zaudēšana ar datu bāzi).

Ieteicams: