Vad är en oåtkomlig kod?
Ouppnåelig kod är programmeringskod som inte kan köras i något sammanhang. Det finns olika orsaker till att detta kan inträffa, och många datorspråk tillåter inte körning av ett program om ett kodavsnitt inte kan nås. Problem som genereras av oåtkomlig kod kan åtgärdas genom att antingen ta bort den problematiska delen av koden eller skriva om en del av koden för att göra avsnittet tillgängligt igen.
När man utvecklar mjukvara kan det vara relativt enkelt att oavsiktligt skapa oåtkomlig kod. Varje betydande störning i programflödet har potential att orsaka ett kodavsnitt som inte kan nås. Till exempel kan oavsiktlig skapande av en oändlig slinga göra att all kod som kommer efter den kan nås eftersom det inte finns något sätt att någonsin bryta sig ur loopen och fortsätta programmet. Ett annat sätt detta kan hända är om en funktion kodas för att returnera innan all dess kod körs. I det här fallet skulle koden efter returrättet inte kunna nås.
Det finns två sätt på vilka oåtkomlig kod kan genereras. Först kan felaktigt hantera kontrollstrukturer när du skriver rå kod kan leda till koder som inte kan nås. För det andra kan fel i kontrollstrukturer som inte är uppenbara under kodningsprocessen men som dyker upp när ett program körs också orsaka kod som inte kan nås. Den första typen av fel går av olika namn, inklusive kodningsfel eller syntaxfel, och den andra typen av fel är ett körningsfel. Kodningsfel fångas vanligtvis av tolkare eller kompilatorer, men körtidsfel kan endast upptäckas genom att testa och köra programmet efter avslutad.
Ouppnåelig kod förväxlas ofta med död kod, men de två är väsentligt olika saker. Död kod är kod som utför en viss beräkning, men gör då ingenting med resultatet av beräkningen. Detta är inte samma sak som kod som inte kan nås, som aldrig körs alls. Både ouppnåelig och död kod kan ofta tas bort från ett program utan att det skadas, eller de kan integreras tillbaka i programmet genom att vara noggrann uppmärksamma på programmets kontrollflöde. Dessutom kan både oåtkomlig och död kod vanligtvis detekteras under kodning och innan ett program körs.
Trots sin till synes svåra definition är oförutsägbar kod ofta relativt lätt att fixa. Närvaron av oåtkomlig kod indikerar alltid ett kontrollflödesproblem, så noggrann analys av programmets kontrollflöde identifierar vanligen den kränkande koden i kort ordning. Om programmets kontrollflöde övervakas noggrant under hela kodningsprocessen, är sannolikheten för att generera oåtkomlig kod mycket låg.