เมื่อดำเนินการโปรแกรม เงื่อนไขที่ผิดปกติและข้อผิดพลาดในการเรียกว่า "ข้อยกเว้น" สามารถเกิดขึ้น สิ่งเหล่านี้อาจรวมถึงการทำงานออกจากหน่วยความจำ ข้อผิดพลาดในการปันส่วนทรัพยากร และความล้มเหลวในการค้นหาแฟ้ม?
ไลบรารี Microsoft Foundation Class ใช้แบบแผนการจัดการข้อยกเว้นที่เป็นแบบจำลองอย่างมากหลังจากที่เสนอ โดยคณะกรรมการมาตรฐาน ANSI สำหรับ c ++ การจัดการข้อยกเว้นต้องตั้งก่อนเรียกฟังก์ชันที่อาจพบสถานการณ์ที่ผิดปกติ ถ้าฟังก์ชันเกิดสภาวะข้อผิดปกติ จะเกิดข้อผิดพลาดข้อยกเว้น และตัวควบคุมจะถูกส่งไปที่ตัวจัดการข้อยกเว้น?
แมโครที่หลายที่รวมอยู่ในไลบรารี Microsoft Foundation Class จะติดตั้งตัวจัดการข้อยกเว้น ตัวเลขของฟังก์ชันอื่น ๆ ส่วนกลางช่วยการโยนข้อยกเว้นพิเศษ และจบการทำงานของโปรแกรม ถ้าจำเป็น แมโครและส่วนกลางฟังก์ชันเหล่านี้จัดอยู่ในประเภทต่อไปนี้:
สำหรับตัวอย่างและรายละเอียดเพิ่มเติม ให้ดูบทความ ข้อยกเว้นในVisual c ++ Programmer ของคำแนะนำ?
| ลอง | แสดงว่าบล็อกของโค้ดสำหรับการประมวลผลข้อยกเว้น? |
| จับ | แสดงว่าบล็อกของโค้ดสำหรับข้อยกเว้นจากบล็อกก่อนหน้าพยายามจับใจ? |
| CATCH_ALL | แสดงว่าบล็อกของโค้ดสำหรับทั้งหมดยกเว้นจากบล็อกก่อนหน้าพยายามจับใจ? |
| AND_CATCH | แสดงว่าบล็อกของรหัสสำหรับชนิดข้อยกเว้นที่เพิ่มเติมจากบล็อกก่อนหน้าพยายามจับใจ? |
| AND_CATCH_ALL | แสดงว่าบล็อกของรหัสสำหรับชนิดอื่น ๆ ทั้งหมดยกเว้นเพิ่มเติมส่งออกไปในช่วงก่อนหน้านี้พยายามจับใจ? |
| END_CATCH | สิ้นสุดการบล็อกโค้ดล่าสุดจับหรือAND_CATCH? |
| END_CATCH_ALL | สิ้นสุดช่วงรหัสCATCH_ALLล่าสุด? |
| โยน | เกิดข้อผิดพลาดมีข้อยกเว้นที่ระบุ? |
| THROW_LAST | ข้อผิดพลาดในขณะนี้จัดการข้อยกเว้นเพื่อการจัดการภายนอกถัดไป? |
| AfxThrowArchiveException | เกิดข้อผิดพลาดข้อยกเว้นการเก็บถาวร? |
| AfxThrowFileException | เกิดข้อผิดพลาดมีข้อยกเว้นของแฟ้ม? |
| AfxThrowMemoryException | เกิดข้อผิดพลาดมีข้อยกเว้นของหน่วยความจำ? |
| AfxThrowNotSupportedException | เกิดข้อผิดพลาดข้อยกเว้นที่ไม่ได้รับการสนับสนุน? |
| AfxThrowResourceException | เกิดข้อผิดพลาดใน Windows ทรัพยากรไม่พบยกเว้น? |
| AfxThrowUserException | ข้อผิดพลาดข้อยกเว้นในการกระทำของผู้ใช้โปรแกรม? |
MFC มีสองฟังก์ชันที่โยนข้อยกเว้นสำหรับข้อยกเว้น OLE โดยเฉพาะ:
OLE ยกเว้นการทำงาน
| AfxThrowOleDispatchException | เกิดข้อผิดพลาดข้อยกเว้นภายในฟังก์ชันการทำงานอัตโนมัติของ OLE? |
| AfxThrowOleException | เกิดข้อผิดพลาดข้อยกเว้น OLE? |
รองรับฐานข้อมูลข้อยกเว้น คลาสที่ฐานข้อมูลให้สองข้อยกเว้นชั้นCDBExceptionและCDaoExceptionและฟังก์ชันที่ส่วนกลางเพื่อสนับสนุนชนิดข้อยกเว้น:
ฟังก์ชันยกเว้นดาว
| AfxThrowDAOException | ข้อผิดพลาดแบบCDaoExceptionจากรหัสของคุณเอง? |
| AfxThrowDBException | ข้อผิดพลาดแบบCDBExceptionจากรหัสของคุณเอง? |
MFC ให้เลิกจ้างฟังก์ชันต่อไปนี้:
| AfxAbort | เรียกว่าการจบการทำงานของโปรแกรมประยุกต์เมื่อมีข้อผิดพลาดร้ายแรงเกิดขึ้น? |
ดูเพิ่มเติมnbspCException(&N)