Vad är en oåtkomlig kod?

Otillgänglig kod är programmeringskod som inte kan köras i något sammanhang. Det finns en mängd olika anledningar till att detta kan inträffa, och många datorspråk tillåter inte exekvering av ett program om en kodsektion inte går att nå. 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 nåbart igen.

När man utvecklar programvara kan det vara relativt lätt att oavsiktligt skapa oåtkomlig kod. Alla betydande avbrott i programmets flöde har potential att orsaka en kodsektion som inte går att nå. Till exempel kan oavsiktligt skapande av en oändlig loop göra all kod som kommer efter den oåtkomlig eftersom det inte skulle finnas 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 återvända innan all dess kod exekveras. I det här fallet skulle koden efter retursatsen vara oåtkomlig.

Det finns två sätt på vilka oåtkomlig kod kan genereras. För det första kan felaktig hantering av kontrollstrukturer när du skriver råkod resultera i kodavsnitt som inte går att nå. För det andra kan fel i kontrollstrukturer som inte är uppenbara under kodningsprocessen, men dyker upp när ett program körs, också orsaka kod som inte går att nå. Den första typen av fel går under en mängd olika namn, inklusive kodningsfel eller syntaxfel, och den andra typen av fel är ett körtidsfel. Kodningsfel fångas vanligtvis upp av tolkare eller kompilatorer, men runtime-fel kan endast upptäckas genom att testa och köra programmet efter att det är klart.

Oåtkomlig kod förväxlas ofta med död kod, men de två är väsentligt olika saker. Död kod är kod som exekverar en viss beräkning, men som sedan inte gör något med resultatet av beräkningen. Detta är inte samma sak som kod som är oåtkomlig, som aldrig exekveras alls. Både oåtkomlig och död kod kan ofta tas bort från ett program utan nackdel, eller så kan de integreras tillbaka i programmet genom att noggrant uppmärksamma programmets kontrollflöde. Dessutom kan både oåtkomlig och död kod vanligtvis upptäckas under kodning och innan ett program körs.

Trots dess till synes hemska definition är oåtkomlig kod ofta relativt lätt att fixa. Närvaron av oåtkomlig kod indikerar alltid ett kontrollflödesproblem, så noggrann analys av ett programs kontrollflöde kommer vanligtvis att identifiera den felande koden på kort tid. Om ett programs kontrollflöde övervakas noggrant under hela kodningsprocessen, är sannolikheten för att generera oåtkomlig kod mycket låg.