Was ist ein nicht erreichbarer Code?
Nicht erreichbarer Code ist Programmcode, der in keinem Kontext ausgeführt werden kann. Dies kann verschiedene Gründe haben und in vielen Computersprachen ist die Ausführung eines Programms nicht möglich, wenn ein Codeabschnitt nicht erreichbar ist. Durch nicht erreichbaren Code erzeugte Probleme können behoben werden, indem entweder der problematische Codeabschnitt entfernt oder ein Teil des Codes neu geschrieben wird, damit der Abschnitt wieder erreichbar ist.
Bei der Entwicklung von Software kann es relativ einfach sein, versehentlich nicht erreichbaren Code zu erstellen. Jede wesentliche Unterbrechung des Programmflusses kann zu einem nicht erreichbaren Codeabschnitt führen. Das versehentliche Erstellen einer Endlosschleife kann beispielsweise dazu führen, dass der gesamte Code, der danach kommt, nicht mehr erreichbar ist, da es keine Möglichkeit gibt, die Schleife zu verlassen und das Programm fortzusetzen. Eine andere Möglichkeit besteht darin, dass eine Funktion so codiert wird, dass sie zurückkehrt, bevor der gesamte Code ausgeführt wird. In diesem Fall wäre der Code nach der return-Anweisung nicht erreichbar.
Es gibt zwei Möglichkeiten, wie nicht erreichbarer Code generiert werden kann. Erstens kann die unsachgemäße Behandlung von Kontrollstrukturen beim Schreiben von Rohcode zu nicht erreichbaren Codeabschnitten führen. Zweitens können Fehler in Kontrollstrukturen, die während des Codierungsprozesses nicht offensichtlich sind, aber beim Ausführen eines Programms auftreten, auch zu nicht erreichbarem Code führen. Der erste Fehlertyp hat verschiedene Namen, einschließlich Codierungs- oder Syntaxfehler, und der zweite Fehlertyp ist ein Laufzeitfehler. Codierungsfehler werden normalerweise von Parsern oder Compilern abgefangen, aber Laufzeitfehler können nur durch Testen und Ausführen des Programms nach dessen Abschluss erkannt werden.
Nicht erreichbarer Code wird oft mit totem Code verwechselt, aber die beiden unterscheiden sich erheblich. Toter Code ist Code, der eine bestimmte Berechnung ausführt, jedoch nichts mit dem Ergebnis der Berechnung zu tun hat. Dies ist nicht dasselbe wie nicht erreichbarer Code, der niemals ausgeführt wird. Sowohl nicht erreichbarer als auch toter Code können oft ohne Beeinträchtigung aus einem Programm entfernt werden oder sie können wieder in das Programm integriert werden, indem der Steuerungsfluss des Programms sorgfältig beachtet wird. Darüber hinaus kann während des Codierens und vor dem Ausführen eines Programms in der Regel sowohl nicht erreichbarer als auch toter Code erkannt werden.
Ungeachtet seiner scheinbar schlechten Definition ist nicht erreichbarer Code oft relativ einfach zu beheben. Das Vorhandensein von nicht erreichbarem Code weist immer auf ein Kontrollflussproblem hin. Eine sorgfältige Analyse des Kontrollflusses eines Programms identifiziert den fehlerhaften Code in der Regel in kurzer Zeit. Wenn der Steuerungsfluss eines Programms während des gesamten Codierungsprozesses sorgfältig überwacht wird, ist die Wahrscheinlichkeit, dass nicht erreichbarer Code generiert wird, sehr gering.