ภาษา C ไม่มีกลไก Exception Handling แบบ Built-in แต่มีวิธีจัดการข้อผิดพลาดดังนี้:
รหัสข้อผิดพลาดทั่วไป (errno)
| รหัส | ข้อผิดพลาด |
|---|---|
| 5 | I/O Error |
| 2 | No such file or directory |
| 7 | Argument list too long |
| 12 | Out of memory |
| 13 | Permission denied |
วิธีจัดการข้อผิดพลาด
- perror() − พิมพ์ข้อความผิดพร้อมคำอธิบายจาก errno
- strerror() − ส่งคืนสตริงอธิบายข้อผิดพลาดจาก errno (ใน
<string.h>) - Exit Status − ใช้
EXIT_SUCCESSและEXIT_FAILUREกับexit() - Divide by Zero − ไม่สามารถจัดการได้ ต้องตรวจสอบก่อนหารด้วย
if
ตัวอย่างโค้ด
#include <stdio.h>
#include <stdlib.h>
int main() {
int x = 28;
int y = 8;
int z;
if (y == 0) {
fprintf(stderr, "Division by zero!\n");
exit(EXIT_FAILURE);
}
z = x / y;
fprintf(stderr, "Value of z : %d\n", z);
exit(EXIT_SUCCESS);
}
ผลลัพธ์
Value of z : 3