คำว่า "ลอง" และ "จับ" อธิบายถึงสิ่งที่ต้องทำเมื่อโปรแกรมพบข้อยกเว้นเนื่องจากปัญหาโค้ดหรือข้อมูล ข้อยกเว้นได้รับการจัดการโดยลอง บล็อกของรหัส Catch Block ถูกใช้เพื่อค้นหาและจัดการกับข้อยกเว้นจากการลองบล็อก ภาษาการเขียนโปรแกรมหลายภาษา รวมถึง Python, C++ และ JavaScript รวมถึง try-catch คำสั่ง
บทความนี้จะแสดงให้เห็นว่าคำสั่ง try-catch คืออะไร และวิธีการนำไปใช้โดยใช้ตัวอย่างในการเขียนโปรแกรม C
คำสั่ง Try Catch คืออะไร
ความพยายาม คำสั่งกำหนดชุดของคำสั่งที่อาจสร้างข้อยกเว้น เมื่อมีข้อยกเว้นชนิดใดชนิดหนึ่งเกิดขึ้น catch block คือตำแหน่งที่ข้อยกเว้นถูกส่งไป คอมไพลเลอร์จะส่งออกการแจ้งเตือนข้อผิดพลาดหรือข้อยกเว้นจะยังคงเดินทางต่อไปใน call stack จนกว่าจะได้รับการแก้ไขหากบล็อก try/catch ไม่สามารถจัดการได้
ไวยากรณ์ทั่วไปของ try-catch คำสั่งได้รับเป็น:
ลอง {
/*
ใส่โค้ดที่อาจสร้างข้อผิดพลาด
*/
}
จับ {
/*
เขียนโค้ดสำหรับจัดการกับข้อผิดพลาดที่สร้างขึ้น
*/
คำสั่ง try-catch ในภาษา C คืออะไร
C ไม่รองรับการจัดการข้อยกเว้น และไม่มีกลไกในตัวให้ทำเช่นนั้น อย่างไรก็ตาม คุณสามารถจำลองสิ่งนี้ได้ในระดับหนึ่งโดยใช้ setjmp และ longjmp โทร หากไม่มีวิธีในการปล่อยหน่วยความจำเมื่อมีการเยี่ยมชมสแต็ก กลไกการจัดการข้อยกเว้นจะไม่มีประสิทธิภาพและไม่ปลอดภัย และ C ไม่มีตัวรวบรวมขยะ หากต้องการเพิ่ม RAM เราอาจจำเป็นต้องรวมตัวจัดการบริบทด้วย
ตอนนี้ ขณะที่เราทำการปรับปรุงโค้ด เราจะค่อยๆ สร้างโซลูชัน longjmp และ setjmp คือฟังก์ชัน C สองฟังก์ชันที่ไฟล์ส่วนหัว setjmp.h สามารถนำมาใช้ได้ ฟังก์ชัน setjmp ยอมรับตัวแปรประเภท jmp_buf และส่งกลับ 0 เมื่อถูกเรียกโดยตรง เมื่อใช้ตัวแปร jmp_buf เดียวกันเพื่อเรียกใช้ longjmp ด้วยตัวแปรสองตัว ฟังก์ชัน setjmp จะส่งกลับค่าที่ตรงกับค่าของอาร์กิวเมนต์ที่สองของ longjmp
ตัวอย่างของการดำเนินการข้างต้นได้รับเป็น:
#รวม
#รวม
#define ลองทำ { jmp_buf buf_state; ถ้า ( !setjmp(buf_state)) {
#define CATCH } อื่น ๆ {
#define ENDTRY }} ในขณะที่ (0)
#define โยน longjmp (buf_state, 1)
int หลัก()
{
ลอง {
printf("ลองทดสอบคำสั่ง\n");
โยน;
printf("คำสั่งไม่ควรปรากฏขึ้น เนื่องจากบล็อก THROW ได้ส่งข้อยกเว้นไปแล้ว \n");
}
จับ {
printf("มีข้อยกเว้น \n");
}
ENDTRY;
กลับ 0;
ในโปรแกรม C ข้างต้น ENDTRY ฟังก์ชันใช้สำหรับจัดเตรียมส่วนปิดของบล็อก do- While

บทสรุป
หากโปรแกรมพบข้อยกเว้นเนื่องจากข้อมูลหรือข้อผิดพลาดในการเขียนโค้ดในขณะที่กำลังทำงานอยู่ “ลอง ” และ “จับ ” อธิบายวิธีจัดการมัน ใน ลอง บล็อกของโค้ด มีข้อยกเว้นเกิดขึ้นในขณะที่ จับ บล็อกคือจุดที่ข้อผิดพลาดจาก ลอง พบบล็อกและจัดการ ภาษาการเขียนโปรแกรมหลายภาษารองรับ try-catch บล็อกแต่ C ไม่ได้ คู่มือนี้อธิบายวิธีการใช้คำสั่ง try-catch ในการเขียนโปรแกรม C
เกี่ยวกับผู้เขียน
โกมาล บาทูล บาทูล
ฉันหลงใหลในการค้นคว้าเทคโนโลยีและแนวคิดใหม่ๆ และนั่นทำให้ฉันมาที่นี่เพื่อเขียนบทความให้กับ LinuxHint เป้าหมายหลักของฉันคือการเขียนเกี่ยวกับภาษาการเขียนโปรแกรมและหัวข้อที่เกี่ยวข้องกับวิทยาการคอมพิวเตอร์