Skip to main content

Jaki jest nieosiągalny kod?

Nieosiągalny kod to kod programowania, którego nie można wykonać w żadnym kontekście.Istnieje wiele powodów, a wiele języków komputerowych nie pozwala na wykonanie programu, jeśli sekcja kodu jest nieosiągalna.Problemy wygenerowane przez nieosiągalne kod można naprawić przez usunięcie problematycznej sekcji kodu lub przepisywanie części kodu, aby sekcja była rejestracyjna.

Podczas oprogramowania inżynieryjnego może być stosunkowo łatwe do nieumyślnego utworzenia nieosiągalnego kodu.Wszelkie znaczące zakłócenia przepływu programu mogą potencjalnie spowodować nieosiągalną sekcję kodu.Na przykład przypadkowe tworzenie nieskończonej pętli może uczynić cały kod, który pojawia się po niej nieosiągalnym, ponieważ nie byłoby sposobu, aby wyrwać się z pętli i kontynuować program.Innym sposobem, w jaki może się to zdarzyć, jest kodowanie funkcji, aby zwrócić przed wykonaniem całego kodu.W takim przypadku kod po oświadczeniu zwrotnym byłby nieosiągalny.

Istnieją dwa sposoby wygenerowania nieosiągalnego kodu.Po pierwsze, niewłaściwe obsługa struktur sterowania podczas pisania kodu RAW może skutkować sekcjami kodu, które są nieosiągalne.Po drugie, błędy w strukturach kontrolnych, które nie są oczywiste podczas procesu kodowania, ale pokazują się, gdy program jest uruchamiany, mogą również powodować nieosiągalny kod.Pierwszy typ błędu przechodzi różne nazwy, w tym błąd kodowania lub błąd składniowy, a drugi typ błędu jest błąd środowiska wykonawczego.Błędy kodowania są zwykle łapane przez parsery lub kompilatory, ale błędy czasu wykonawczego można wykryć tylko poprzez testowanie i uruchamianie programu po zakończeniu.

Nieosiągalny kod jest często mylony z martwym kodem, ale oba są znacząco różnymi rzeczami.Martwy kod to kod, który wykonuje określone obliczenia, ale potem nic nie robi z wynikiem obliczeń.To nie jest to samo, co kod, który jest nieosiągalny, który wcale nigdy nie jest wykonywany.Zarówno nieosiągalny, jak i martwy kod można często usunąć z programu bez szkód, lub można je zintegrować z powrotem z programem, zwracając szczególną uwagę na przepływ kontroli programów.Ponadto zarówno nieosiągalny, jak i martwy kod można zwykle wykryć podczas kodowania i przed uruchomieniem programu.

Pomimo jego pozornie tragicznej definicji, nieosiągalny kod jest często stosunkowo łatwy do naprawienia.Obecność nieosiągalnego kodu zawsze wskazuje na problem przepływu kontrolnego, więc staranna analiza przepływu kontroli programów zwykle zidentyfikuje kod przestępstwa w krótkim czasie.Jeśli przepływ kontroli programów jest starannie monitorowany przez cały proces kodowania, prawdopodobieństwo generowania nieosiągalnego kodu jest bardzo niskie.