Zašto Se Programi Ruše

Zašto Se Programi Ruše
Zašto Se Programi Ruše
Anonim

Raznolikost zadataka koji se danas rješavaju uz pomoć osobnih računala osigurava postojanje ogromnog skupa aplikacijskih programa. Pogodnost rada sa softverom uvelike ovisi o njegovoj pouzdanosti, koja se izražava u nedostatku izvanrednih situacija. Međutim, mnogi se programi sruše u najnepovoljnijem trenutku. Zašto?

Zašto
Zašto

Mehanizam iznimke koristi se za praćenje i rješavanje posebnih, abnormalnih ili pogrešnih situacija koje se javljaju tijekom rada računalnih programa pod kontrolom suvremenih operativnih sustava. Iznimke mogu biti hardver (baca ga procesor) i softver (baca sama aplikacija ili neka dodatna vanjska komponenta).

Bez obzira na vrstu, iznimka se može ispravno uhvatiti i riješiti. Neuhvaćene iznimke idu na rukovatelj osnovnom runtime knjižnicom ili rukovatelj instaliran operativnim sustavom. Ako se to dogodi, program se ruši s porukom ili abnormalnim prozorom za prekid (u sustavu Windows). Ako rukovatelj operacijskim sustavom nije radio (na primjer, namjerno je uklonjen), program se "tiho ruši". Dakle, programi se ruše zbog iznimki s kojima se ne može rukovati. Razlozi za pojavu iznimaka su različiti.

U ogromnoj većini slučajeva programi se ruše zbog izvršavanja vlastitog koda koji sadrži eksplicitne ili implicitne pogreške u implementaciji. Popis mogućih uzroka hitnih slučajeva vrlo je dugačak. To su i klasične pogreške u radu s brojevima s pomičnim zarezom (na primjer, podjela s 0) i pogreške u radu s memorijom (čitanje ili pisanje izvan adresnog prostora procesa, pristup zaštićenim stranicama, upisivanje u memorijsko područje samo za čitanje), preljevni stog zbog beskonačne rekurzije itd. U tim se slučajevima bacaju iznimke hardvera ili izuzeci operativnog sustava.

Implicitne pogreške uključuju razne slučajeve nedovoljnog filtriranja ulaznih podataka, nedostatak provjere vrijednosti pokazivača i još mnogo toga. Takvi nedostaci dovode do iznimnih situacija samo u određenim slučajevima.

Pogreške u implementaciji također se mogu naći u vanjskim komponentama koje aplikacija koristi. Na primjer, u dinamičkim knjižnicama koje pružaju potrebnu funkcionalnost ili dodatne module. Programski kôd koji se implicitno učitava u adresni prostor procesa (na primjer, radi presretanja određenih API funkcija) također može uzrokovati pad programa.

Mnoge komponente i knjižnice (na primjer, ADO u sustavu Windows) koriste mehanizam programske iznimke kao prioritet za prijavljivanje pogrešaka. Odsutnost ili nepotpuno postupanje s iznimkama kod ove vrste aplikacije može dovesti do pada sustava čak i u potpuno bezazlenim situacijama (poput gubitka veze s bazom podataka).

Preporučeni: