ข้อผิดพลาดในการเขียนโปรแกรม
ข้อผิดพลาด (Error) คือสาเหตุที่ทำให้โค้ดทำงานไม่สำเร็จ จำแนกได้ 2 ประเภทหลักตามเวลาที่เกิดขึ้น
ตารางเปรียบเทียบ
| ลำดับ | หัวข้อ | Compile-time Errors | Runtime Errors |
|---|---|---|---|
| 1 | อ้างอิง | ข้อผิดพลาดด้านไวยากรณ์ (Syntax) หรือความหมาย (Semantics) | ข้อผิดพลาดที่เกิดระหว่างรันโปรแกรม |
| 2 | การตรวจจับ | คอมไพลเลอร์ตรวจพบขณะเขียนโค้ด | คอมไพลเลอร์ไม่จับได้ พบตอนรันโปรแกรม |
| 3 | การแก้ไข | แก้ไขได้ขณะพัฒนาโค้ด | แก้ไขได้หลังรันและพบข้อผิดพลาด |
ตัวอย่าง Compile-time Error
#include <stdio.h>
int main() {
int x = 100;
int y = 155;
// ขาด semicolon
printf("%d", (x, y))
}ผลลัพธ์
error: expected ';' before '}' token
ตัวอย่าง Runtime Error
#include <stdio.h>
int main() {
int n = 9;
int div = 0;
div = n / 0; // หารด้วยศูนย์
printf("result = %d", div);
}ผลลัพธ์
warning: division by zero [-Wdiv-by-zero] div = n/0; // รันแล้วโปรแกรมจะ crash (Floating point exception)
สรุป: Compile-time error ป้องกันได้ตั้งแต่เขียนโค้ด Runtime error ต้องทดสอบการรันจึงจะรู้