รหัสที่เข้าไม่ถึงคืออะไร?

รหัสที่เข้าไม่ได้คือรหัสการเขียนโปรแกรมที่ไม่สามารถดำเนินการในบริบทใด ๆ มีสาเหตุหลายประการที่อาจเกิดขึ้นและภาษาคอมพิวเตอร์จำนวนมากไม่อนุญาตให้เรียกใช้งานโปรแกรมหากส่วนของรหัสไม่สามารถเข้าถึงได้ ปัญหาที่สร้างโดยรหัสที่ไม่สามารถเข้าถึงได้สามารถแก้ไขได้โดยการลบส่วนที่เป็นปัญหาของรหัสหรือการเขียนส่วนของรหัสใหม่เพื่อให้สามารถเข้าถึงส่วนได้อีกครั้ง

เมื่อซอฟต์แวร์ด้านวิศวกรรมสามารถสร้างรหัสที่ไม่สามารถเข้าถึงได้โดยง่าย การหยุดชะงักที่สำคัญของโฟลว์ของโปรแกรมนั้นมีโอกาสที่จะทำให้ส่วนของโค้ดที่ไม่สามารถเข้าถึงได้ ตัวอย่างเช่นการสร้างลูปแบบไม่ จำกัด โดยไม่ตั้งใจอาจแสดงโค้ดทั้งหมดที่มาหลังจากที่ไม่สามารถเข้าถึงได้เนื่องจากจะไม่มีทางแยกออกจากลูปและทำโปรแกรมต่อไป อีกวิธีหนึ่งที่อาจเกิดขึ้นได้คือถ้าฟังก์ชั่นถูกโค้ดให้ส่งคืนก่อนที่จะประมวลผลโค้ดทั้งหมด ในกรณีนี้โค้ดหลังคำสั่ง return จะไม่สามารถเข้าถึงได้

มีสองวิธีในการสร้างโค้ดที่ไม่สามารถเข้าถึงได้ ขั้นแรกการจัดการโครงสร้างการควบคุมที่ไม่ถูกต้องเมื่อเขียนรหัสดิบอาจส่งผลให้ส่วนของรหัสที่ไม่สามารถเข้าถึงได้ ประการที่สองข้อผิดพลาดในโครงสร้างการควบคุมที่ไม่ชัดเจนในระหว่างขั้นตอนการเข้ารหัส แต่แสดงเมื่อโปรแกรมทำงานอาจทำให้รหัสที่ไม่สามารถเข้าถึงได้ ข้อผิดพลาดประเภทแรกนั้นเกิดจากชื่อที่หลากหลายรวมถึงข้อผิดพลาดในการเขียนโค้ดหรือข้อผิดพลาดทางไวยากรณ์และข้อผิดพลาดประเภทที่สองคือข้อผิดพลาดรันไทม์ ข้อผิดพลาดในการเขียนโค้ดมักจะถูกตรวจพบโดยตัวแยกวิเคราะห์หรือคอมไพเลอร์ แต่ข้อผิดพลาดรันไทม์สามารถตรวจพบได้โดยการทดสอบและเรียกใช้โปรแกรมหลังจากเสร็จสิ้น

รหัสที่เข้าไม่ได้มักจะสับสนกับรหัสที่ตายแล้ว แต่ทั้งสองอย่างนั้นต่างกันมาก Dead code คือรหัสที่ประมวลผลการคำนวณเฉพาะ แต่ไม่ทำอะไรเลยกับผลลัพธ์ของการคำนวณ รหัสนี้ไม่เหมือนกับโค้ดที่ไม่สามารถเข้าถึงได้ซึ่งไม่เคยมีการดำเนินการเลย ทั้งโค้ดที่ไม่สามารถเข้าถึงได้และโค้ดที่ตายแล้วมักจะถูกลบออกจากโปรแกรมโดยไม่มีความเสียหายหรือสามารถรวมกลับเข้าไปในโปรแกรมได้โดยให้ความสนใจกับโฟลว์การควบคุมของโปรแกรม นอกจากนี้โค้ดทั้งที่ไม่สามารถเข้าถึงได้และเดดซีนั้นสามารถตรวจพบได้ระหว่างการเข้ารหัสและก่อนที่จะรันโปรแกรม

แม้จะมีคำจำกัดความที่น่ากลัว แต่โค้ดที่เข้าไม่ได้นั้นมักจะแก้ไขได้ง่าย การปรากฏตัวของรหัสที่ไม่สามารถเข้าถึงได้บ่งบอกถึงปัญหาการควบคุมการไหลเสมอดังนั้นการวิเคราะห์อย่างรอบคอบของการควบคุมการไหลของโปรแกรมมักจะระบุรหัสที่กระทำผิดในลำดับสั้น ๆ หากโฟลว์ควบคุมของโปรแกรมได้รับการตรวจสอบอย่างรอบคอบตลอดกระบวนการการเข้ารหัสโอกาสในการสร้างโค้ดที่ไม่สามารถเข้าถึงได้นั้นต่ำมาก