Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

การจัดการข้อผิดพลาดใน C


ไม่รองรับการจัดการข้อผิดพลาดในภาษา 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