Zašto Se Programi Ruše

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

Video: Zašto Se Programi Ruše

Video: Zašto Se Programi Ruše
Video: «Когда меня не станет» Мелодрама (2019) @Россия 1 2024, Travanj
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: