Codul inaccesibil este un cod de programare care nu poate fi executat în niciun context. Există o varietate de motive pentru care acest lucru ar putea apărea și multe limbaje de calculator nu permit executarea unui program dacă o secțiune de cod nu este accesibilă. Problemele generate de codul inaccesibil pot fi rezolvate fie prin eliminarea secțiunii problematice a codului, fie prin rescrierea unei părți a codului pentru a face secțiunea accesibilă din nou.
La crearea unui software de inginerie, poate fi relativ ușor să creezi din greșeală cod inaccesibil. Orice întrerupere semnificativă în fluxul programului are potențialul de a provoca o secțiune de cod inaccesabilă. De exemplu, crearea accidentală a unei bucle infinite poate face ca tot codul care vine după ea să fie inaccesibil, deoarece nu ar exista nicio modalitate de a ieși vreodată din buclă și de a continua programul. Un alt mod în care acest lucru se poate întâmpla este dacă o funcție este codificată pentru a reveni înainte ca tot codul ei să fie executat. În acest caz, codul de după declarația return ar fi inaccesibil.
Există două moduri prin care codul inaccesibil poate fi generat. În primul rând, gestionarea incorectă a structurilor de control la scrierea codului brut poate duce la secțiuni de cod inaccesibile. În al doilea rând, erorile din structurile de control care nu sunt evidente în timpul procesului de codificare, dar care apar atunci când este rulat un program, pot cauza, de asemenea, cod inaccesibil. Primul tip de eroare are o varietate de nume, inclusiv eroare de codare sau eroare de sintaxă, iar al doilea tip de eroare este o eroare de rulare. Erorile de codare sunt de obicei detectate de analizatori sau compilatori, dar erorile de rulare pot fi detectate doar testând și rulând programul după finalizare.
Codul inaccesibil este adesea confundat cu codul mort, dar cele două sunt lucruri semnificativ diferite. Codul mort este un cod care execută un anumit calcul, dar apoi nu face nimic cu rezultatul calculului. Acesta nu este același lucru cu codul care este inaccesibil, care nu este niciodată executat. Atât codul inaccesibil, cât și codul mort pot fi adesea eliminate dintr-un program fără a prejudicia, sau pot fi integrate înapoi în program, acordând o atenție deosebită fluxului de control al programului. În plus, atât codul inaccesibil, cât și codul mort pot fi detectate de obicei în timpul codării și înainte de rularea unui program.
În ciuda definiției sale aparent îngrozitoare, codul inaccesibil este adesea relativ ușor de remediat. Prezența unui cod inaccesibil indică întotdeauna o problemă cu fluxul de control, așa că o analiză atentă a fluxului de control al unui program va identifica, de obicei, codul ofensator în scurt timp. Dacă fluxul de control al unui program este monitorizat cu atenție pe tot parcursul procesului de codificare, probabilitatea de a genera cod inaccesibil este foarte scăzută.