วิธีใช้คำสั่ง Try Catch ใน C

Withi Chi Kha Sang Try Catch Ni C



คำว่า 'ลอง' และ 'จับ' อธิบายสิ่งที่ต้องทำเมื่อโปรแกรมพบข้อยกเว้นเนื่องจากปัญหารหัสหรือข้อมูล ข้อยกเว้นจะได้รับการจัดการใน พยายาม บล็อกของรหัส บล็อก catch ใช้เพื่อค้นหาและจัดการข้อยกเว้นจากการลองบล็อก ภาษาโปรแกรมหลายภาษา รวมถึง Python, C++ และ JavaScript รวมอยู่ด้วย ลองจับ งบ

บทความนี้จะสาธิตว่าคำสั่ง try-catch คืออะไรและนำไปใช้อย่างไรโดยใช้ตัวอย่างในการเขียนโปรแกรมภาษาซี

คำสั่ง Try Catch คืออะไร?

เดอะ พยายาม คำสั่งกำหนดชุดของคำสั่งที่อาจสร้างข้อยกเว้น เมื่อเกิดข้อยกเว้นบางประเภท บล็อก catch จะเป็นที่ที่ส่งข้อยกเว้น คอมไพเลอร์จะส่งการแจ้งเตือนข้อผิดพลาดหรือข้อยกเว้นจะเดินทางต่อไปใน call stack จนกว่าจะได้รับการแก้ไขหากบล็อก try/catch ไม่สามารถจัดการได้







ไวยากรณ์ทั่วไปของ ลองจับ คำสั่งจะได้รับเป็น:



พยายาม {
/*
ใส่รหัสที่อาจสร้างข้อผิดพลาด
*/
}
จับ {
/*
เขียนรหัส สำหรับ จัดการกับข้อผิดพลาดที่เกิดขึ้น
*/
}

คำสั่ง try-catch ใน C คืออะไร?

C ไม่รองรับการจัดการข้อยกเว้น และไม่มีกลไกในตัวในการทำเช่นนั้น อย่างไรก็ตาม คุณสามารถจำลองสิ่งนี้ได้ในระดับหนึ่งโดยใช้ setjmp และ ลองเจเอ็มพี โทร. กลไกการจัดการข้อยกเว้นจะไม่มีประสิทธิภาพและไม่ปลอดภัย และ 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)
#กำหนดโยน longjmp(buf_state, 1)
int หลัก ( )
{
พยายาม {
พิมพ์ฉ ( 'ลองทดสอบคำสั่ง \n ' ) ;
โยน;
พิมพ์ฉ ( 'คำสั่งไม่ควรปรากฏ เนื่องจากบล็อก THROW ได้ส่งข้อยกเว้นไปแล้ว \n ' ) ;
}
จับ {
พิมพ์ฉ ( 'ได้รับการยกเว้น \n ' ) ;
}
สิ้นสุด;
กลับ 0 ;
}

ในโปรแกรม C ข้างต้น, the สิ้นสุด ฟังก์ชันใช้สำหรับจัดเตรียมส่วนปิดของบล็อก do- while



บทสรุป

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