
CExceptionเป็นคลาสพื้นฐานสำหรับข้อยกเว้นทั้งหมดในไลบรารี Microsoft Foundation Class คลาสที่ได้รับและคำอธิบายของพวกเขาอยู่ด้านล่าง:
| CMemoryException | ข้อยกเว้นออกความจำ |
| CNotSupportedException | ร้องขอการดำเนินการที่ไม่สนับสนุน |
| CArchiveException | ข้อยกเว้นเฉพาะตัวของการเก็บถาวร |
| CFileException | ข้อยกเว้นเฉพาะแฟ้ม |
| CResourceException | ทรัพยากรของ Windows ไม่พบ หรือไม่ createable |
| COleException | OLE ข้อยกเว้น |
| CDBException | ฐานข้อมูล exceptionnbsp (นั่นคือ เงื่อนไขข้อยกเว้นเกิดขึ้นสำหรับ MFC ฐานชั้นที่ยึดตามการเชื่อมต่อฐานข้อมูลที่เปิด)(&N) |
| COleDispatchException | OLE ส่งข้อยกเว้น (อัตโนมัติ) |
| CUserException | ข้อยกเว้นที่บ่งชี้ว่า ทรัพยากรไม่พบ |
| CDaoException | การเข้าถึงข้อมูลข้อยกเว้นวัตถุ (นั่นคือ ยกเว้นเงื่อนไขเกิดเรียน DAO) |
| CInternetException | อินเทอร์เน็ตข้อยกเว้น (นั่นคือ ยกเว้นเงื่อนไขเกิดเรียนอินเทอร์เน็ต)? |
ข้อยกเว้นเหล่านี้มีวัตถุประสงค์เพื่อใช้กับการโยน THROW_LASTลองจับ AND_CATCHและEND_CATCHแมโคร สำหรับข้อมูลเพิ่มเติมเกี่ยวกับข้อยกเว้น ดูข้อยกเว้นการประมวลผลหรือดูบทความ ข้อยกเว้นในVisual c ++ Programmer ของคำแนะนำ?
การจับมีข้อยกเว้นเฉพาะ ใช้เหมาะสมมาคลาส จับทุกชนิดยกเว้น ใช้CExceptionและใช้CObject::IsKindOfเพื่อแยกความแตกต่างระหว่างCException-มาเรียน หมายเหตุว่าCObject::IsKindOfที่ใช้ได้กับคลาประกาศพร้อมแมโคIMPLEMENT_DYNAMICเพื่อใช้ประโยชน์จากการตรวจสอบชนิดไดนามิกเท่านั้น CExceptionใด ๆ-คลาสรับที่คุณสร้างควรใช้แมโคIMPLEMENT_DYNAMICเกินไป?
คุณสามารถรายงานรายละเอียดเกี่ยวกับข้อยกเว้นสำหรับผู้ใช้ โดยการเรียกGetErrorMessageหรือReportErrorสองฟังก์ชันสมาชิกที่ทำงานกับหนึ่งในCExceptionของคลาสที่ได้รับ?
ถ้ามีข้อยกเว้นถูกดักจับ ด้วยหนึ่งของแมโครใน วัตถุCExceptionจะถูกลบออกโดยอัตโนมัติ ไม่ลบด้วยตัวคุณเอง ถ้าถูกดักจับข้อยกเว้น โดยใช้คำสำคัญจับมันจะไม่ลบโดยอัตโนมัติ ดูบทความ ข้อยกเว้นในVisual c ++ Programmer ของคำแนะนำสำหรับข้อมูลเพิ่มเติมเกี่ยวกับเมื่อลบวัตถุ exeption?
CExceptionคลาสพื้นฐานที่เป็นนามธรรมได้ คุณไม่สามารถสร้างวัตถุCException คุณต้องสร้างวัตถุของคลาสที่ได้รับ ถ้าคุณต้องการสร้างชนิดของCExceptionของคุณเอง ใช้วิธีการใดวิธีการหนึ่งของคลาสที่ได้รับรายการข้างต้นเป็นแบบจำลอง ตรวจสอบให้แน่ใจว่า ชั้นของคุณได้รับมายังใช้IMPLEMENT_DYNAMIC?
#รวม lt;afx.h>
สมาชิกของคลาส|nbsp คลาสพื้นฐาน| แผนภูมิของลำดับชั้น(&N)
ตัวอย่างnbsp อย่าง MFC ฉีก(&N)
ดูเพิ่มเติมnbspการประมวลผลข้อยกเว้น(&N)