สื่อวีดิทัศน์การสอน เรื่อง :: ข้อผิดพลาดของโปรแกรม :: 

———————————————————————————————————————————

ข้อผิดพลาดของโปรแกรม หรือที่มักเรียกกันว่า Error นั้น แบ่งออกเป็น 2 ประเภท ได้แก่
          1. ข้อผิดพลาดจากการเขียนโปรแกรม (Compile Error)
          2. ข้อผิดพลาดจากการทำงานของโปรแกรม (Runtime Error)

———————————————————————————————————————————

1. ข้อผิดพลาดจากการเขียนโปรแกรม (Compile Error) 1
          เป็นข้อผิดพลาดที่เกิดจากการเขียนคำสั่งผิด ไม่ตรงกับโครงสร้างของภาษาซี ซึ่งจะมีผลทำให้โปรแกรมที่เขียนขึ้นไม่สามารถแปลความหมาย และทำงานได้ จากนั้นโปรแกรมจะบอกถึงสาเหตุ และแสดงจุดที่ผิดพลาดตำแหน่งนั้น ๆ

          ตัวอย่าง เขียนโปรแกรมแสดงข้อความ Hello World บนจอภาพ แต่เขียนคำสั่งผิดจากฟังก์ชัน printf เป็นคำที่ผิดคือ print จึงทำให้เกิดข้อผิดพลาดแบบ Compile Error ขึ้น ดังรูปที่ 1


รูปที่ 1 ตัวอย่างการเขียนฟังก์ชัน printf ผิดพลาด

———————————————————————————————————————————

2. ข้อผิดพลาดจากการทำงานของโปรแกรม (Runtime Error) 1
          ข้อผิดพลาดประเภทนี้เป็นข้อผิดพลาด (Error) ที่ตรวจพบได้ยากกว่าแบบแรก เนื่องจากตัวแปลภาษาซีจะไม่ตรวจสอบคำสั่งผิดใด ๆ เลย เพราะผู้เขียนโปรแกรมเขียนคำสั่งต่าง ๆ ตามหลักการ และไวยากรณ์ของภาษาได้ถูกต้อง แต่จะเกิดปัญหาเมื่อมีการสั่งให้โปรแกรมทำงานมาจนถึงช่วงของคำสั่งนั้น ๆ ก็จะพบกับข้อผิดพลาดขึ้น ปัญหาจากข้อผิดพลาดประเภทนี้ที่พบบ่อยคือ ปัญหาหารด้วยศูนย์ (0) หรือที่เรียกว่า Divide By Zero รูปที่ 2


รูปที่ 2 ตัวอย่างการเขียนโปรแกรมเพื่อทดสอบ กรณี Divide By Zero

          แต่เมื่อสั่งให้โปรแกรมนั้นทำงานจะพบว่า โปรแกรมทำงานถึงบรรทัดที่มีข้อผิดพลาด แต่จะไม่สามารถแสดงผลลัพธ์ใด ๆ ออกมาได้ เนื่องจากเกิดข้อผิดพลาดลักษณะ Runtime Error ขึ้น ในกรณีนี้คือ การหารด้วยศูนย์ (Divide By Zero) ดังรูปที่ 3


รูปที่ 3 ตัวอย่างผลลัพธ์ข้อผิดพลาด กรณี Divide By Zero

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

(แหล่งข้อมูล...  คู่มือการเขียนโปรแกรมภาษา C ฉบับผู้เริ่มต้น / ประภาพร ช่างไม้)

———————————————————————————————————————————