Skip to main content

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

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

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

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

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

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