
CUserExceptionถูกส่งออกไปเมื่อต้องการหยุดการดำเนินการสำหรับผู้ใช้ ใช้CUserExceptionเมื่อคุณต้องการใช้กลไก/จับโยนข้อยกเว้นสำหรับข้อยกเว้นเฉพาะโปรแกรมประยุกต์ "ผู้ใช้" ในชื่อคลาสสามารถตีความเป็น "ผู้ใช้ของฉันได้สิ่งที่ยอดเยี่ยมที่ต้องจัดการ
CUserExceptionถูกส่งออกไปหลังจากการเรียกฟังก์ชันสากลAfxMessageBoxเพื่อแจ้งผู้ใช้ที่มีการดำเนินการล้มเหลวมักจะ เมื่อคุณเขียนเป็นตัวจัดการข้อยกเว้น จัดการข้อยกเว้นพิเศษเนื่องจากผู้ใช้มักจะมีแล้วถูกแจ้งความล้มเหลว กรอบข้อผิดพลาดนี้ยกเว้นในบางกรณี การโยนตัวเองแบบCUserExceptionแจ้งเตือนผู้ใช้ และจากนั้น เรียกใช้ฟังก์ชันสากลAfxThrowUserException?
ในตัวอย่างด้านล่าง ฟังก์ชันประกอบด้วยการดำเนินการที่อาจล้มเหลวเตือนผู้ใช้ และข้อผิดพลาดCUserException ฟังก์ชันการโทร catches ข้อยกเว้น และจัดการพิเศษ:
โมฆะ DoSomeOperation ()
{
nbsp / / ทำการประมวลผล
/ / ถ้าสิ่งที่ผิดไป...
AfxMessageBox ("x ดำเนินล้มเหลว");
AfxThrowUserException ()
}
() TrySomething BOOL
{
ลอง
{
/ / สามารถโยนแบบ CUserException หรือข้อยกเว้นอื่น ๆ
DoSomeOperation ()
}
จุดอ่อน (CUserException, e)
{
ส่งกลับค่า FALSE / / แล้วแจ้งผู้ใช้
}
AND_CATCH (CException, e)
{
/ / สำหรับชนิดอื่น ๆ ยกเว้น แจ้งให้ผู้ใช้ที่นี่
AfxMessageBox ("บางการล้มเหลว");
ส่งกลับค่า FALSE
}
END_CATCH
ส่งกลับ TRUE / / ไม่มีข้อยกเว้นที่ส่งออกไป
}(&N)
ดูบทความสำหรับข้อมูลเพิ่มเติมเกี่ยวกับการใช้CUserException, ข้อยกเว้นในVisual c ++ Programmer ของคำแนะนำ?
#รวม lt;afxwin.h>
สมาชิกของคลาส base |nbsp แผนภูมิของลำดับชั้น(&N)
ดูเพิ่มเติมnbspCException, AfxMessageBox, AfxThrowUserException(&N)