ไม่รองรับการจัดการข้อผิดพลาดในภาษา C มีวิธีอื่นในการจัดการข้อผิดพลาดในภาษา C ไฟล์ส่วนหัว “error.h” ใช้เพื่อพิมพ์ข้อผิดพลาดโดยใช้ฟังก์ชันคำสั่งส่งคืน
คืนค่า -1 หรือ NULL ในกรณีที่เกิดข้อผิดพลาดและตัวแปร errno ถูกตั้งค่าด้วยรหัสข้อผิดพลาด เมื่อใดก็ตามที่มีการเรียกใช้ฟังก์ชันในภาษา C ตัวแปร errno จะเชื่อมโยงกับฟังก์ชันนั้น errno เป็นตัวแปรส่วนกลางและใช้เพื่อค้นหาประเภทของข้อผิดพลาดในการดำเนินการ
ตารางต่อไปนี้แสดงข้อผิดพลาดบางอย่าง -
Sr.No | ข้อผิดพลาด &ค่าความผิดพลาด |
---|---|
1 | ข้อผิดพลาดของ I/O 5 |
2 | ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว 2 |
3 | รายการอาร์กิวเมนต์ยาวเกินไป 7 |
4 | หน่วยความจำไม่เพียงพอ 12 |
5 | การอนุญาตถูกปฏิเสธ 13 |
มีวิธีการบางอย่างในการจัดการข้อผิดพลาดในภาษา C -
-
perror() − ฟังก์ชันนี้ใช้เพื่อพิมพ์ข้อผิดพลาดและส่งกลับสตริงพร้อมกับการแสดงข้อความของค่า errno ปัจจุบัน
-
strerror() − ฟังก์ชั่นนี้ถูกประกาศในไฟล์ส่วนหัว “string.h” และจะส่งกลับตัวชี้ไปยังสตริงของค่า errno ปัจจุบัน
-
สถานะการออก − มีค่าคงที่สองค่า EXIT_SUCCESS และ EXIT_FAILURE ซึ่งสามารถใช้ในฟังก์ชัน exit() เพื่อแจ้งฟังก์ชันการเรียกเกี่ยวกับข้อผิดพลาด
-
หารด้วยศูนย์ − นี่เป็นสถานการณ์ที่ไม่สามารถจัดการกับข้อผิดพลาดนี้ในภาษา C ได้ หลีกเลี่ยงข้อผิดพลาดนี้และคุณสามารถตรวจสอบค่าตัวหารได้โดยใช้เงื่อนไข 'if' ในโปรแกรม
นี่คือตัวอย่างการจัดการข้อผิดพลาดในภาษา C
ตัวอย่าง
#include <stdio.h> #include <stdlib.h> 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