Kaj je nedosegljiva koda?

Nedosegljiva koda je programska koda, ki je ni mogoče izvesti v nobenem kontekstu. Do tega lahko pride iz različnih razlogov in mnogi računalniški jeziki ne dovoljujejo izvajanja programa, če je del kode nedosegljiv. Težave, ki jih povzroča nedosegljiva koda, je mogoče odpraviti tako, da odstranite problematičen del kode ali prepišete del kode, da bo odsek znova dosegljiv.

Pri izdelavi programske opreme je lahko relativno enostavno nehote ustvariti nedosegljivo kodo. Vsaka pomembna motnja v toku programa lahko povzroči nedosegljiv odsek kode. Na primer, nenamerno ustvarjanje neskončne zanke lahko povzroči, da je vsa koda, ki pride za njo, nedosegljiva, ker ne bi bilo nobenega načina, da bi se iz zanke kdaj prebili in nadaljevali program. Drug način, kako se to lahko zgodi, je, če je funkcija kodirana tako, da se vrne, preden se izvede vsa njena koda. V tem primeru bi bila koda po povratnem stavku nedosegljiva.

Obstajata dva načina za generiranje nedosegljive kode. Prvič, nepravilno ravnanje s kontrolnimi strukturami pri pisanju neobdelane kode lahko povzroči nedosegljive dele kode. Drugič, napake v kontrolnih strukturah, ki med procesom kodiranja niso očitne, vendar se pojavijo, ko se program zažene, lahko povzročijo tudi nedosegljivo kodo. Prva vrsta napake ima različna imena, vključno z napako kodiranja ali napako v sintaksi, druga vrsta napake pa je napaka med izvajanjem. Napake pri kodiranju običajno ujamejo razčlenjevalniki ali prevajalniki, vendar je med izvajanjem napake mogoče odkriti le s testiranjem in zagonom programa po zaključku.

Nedosegljivo kodo pogosto zamenjujejo z mrtvo kodo, vendar sta to bistveno različni stvari. Mrtva koda je koda, ki izvede določen izračun, nato pa z rezultatom izračuna ne naredi ničesar. To ni isto kot nedosegljiva koda, ki se sploh nikoli ne izvede. Tako nedosegljivo kot mrtvo kodo je mogoče pogosto brez škode odstraniti iz programa ali pa ju je mogoče integrirati nazaj v program, tako da se pozorno posvetite nadzornemu toku programa. Poleg tega je mogoče med kodiranjem in pred izvajanjem programa običajno zaznati nedosegljivo in mrtvo kodo.

Kljub navidezno grozljivi definiciji je nedosegljivo kodo pogosto relativno enostavno popraviti. Prisotnost nedosegljive kode vedno kaže na težavo s krmilnim tokom, zato bo skrbna analiza krmilnega toka programa običajno v kratkem času identificirala motečo kodo. Če se nadzorni tok programa skrbno spremlja skozi celoten proces kodiranja, je verjetnost generiranja nedosegljive kode zelo majhna.