Varför Program Kraschar

Varför Program Kraschar
Varför Program Kraschar

Video: Varför Program Kraschar

Video: Varför Program Kraschar
Video: 5 GALNA NÖDLANDNINGAR 2024, December
Anonim

Många uppgifter som löses idag med hjälp av persondatorer tillhandahålls genom att det finns en enorm uppsättning applikationsprogram. Bekvämligheten med att arbeta med programvaran beror till stor del på dess tillförlitlighet, vilket uttrycks i frånvaro av nödsituationer. Men många program kraschar i det mest olämpliga ögonblicket. Varför?

Varför
Varför

Undantagsmekanismen används för att spåra och hantera speciella, onormala eller felaktiga situationer som uppstår under drift av datorprogram under kontroll av moderna operativsystem. Undantag kan vara hårdvara (kastas av processorn) och programvara (kastas av själva programmet eller någon extern plug-in-komponent).

Oavsett typ kan undantaget fångas och hanteras korrekt. Oupptagna undantag går till root runtime-bibliotekshanteraren eller en operativsysteminstallerad hanterare. Om detta händer kraschar programmet med ett meddelande eller ett onormalt avslutningsfönster (i Windows). Om operativsystemhanteraren inte fungerade (till exempel avlägsnades den medvetet), kraschar programmet tyst. Således kraschar program på grund av undantag som inte kan hanteras. Anledningarna till undantag är olika.

I den överväldigande majoriteten av fallen kraschar program på grund av körningen av sin egen kod som innehåller uttryckliga eller implicita implementeringsfel. Listan över möjliga orsaker till nödsituationer är mycket lång. Dessa är både klassiska funktionsfel på flytande nummer (till exempel delning med 0) och fel i arbetet med minne (läsning eller skrivning utanför processadressutrymmet, åtkomst till skyddade sidor, skrivning till ett skrivskyddat minnesområde), överflödsstack på grund av oändlig rekursion, etc. I dessa fall kastas undantag för maskinvara eller undantag från operativsystem.

Implicita fel inkluderar olika fall av otillräcklig filtrering av indata, bristande validering av pekervärden och mycket mer. Sådana brister leder till exceptionella situationer endast i vissa fall.

Implementeringsfel finns också i externa komponenter som används av applikationen. Till exempel i dynamiska bibliotek som tillhandahåller nödvändig funktionalitet eller tilläggsmoduler. Programkod som implicit laddas in i adressutrymmet i en process (till exempel för att fånga upp vissa API-funktioner) kan också få programmet att krascha.

Många komponenter och bibliotek (till exempel ADO på Windows) använder den programmatiska undantagsmekanismen som en prioritet för rapporteringsfel. Frånvaron eller ofullständig hantering av undantag med denna typ av applikation kan leda till att den kraschar även i helt ofarliga situationer (t.ex. förlust av anslutning till databasen).

Rekommenderad: