เสมือน BOOL GetErrorMessage (LPTSTR lpszError, UINT nMaxError, PUINT pnHelpContext = NULL);
ส่งกลับค่า
ไม่ใช่ศูนย์ถ้าฟังก์ชันนี้จะสำเร็จ มิฉะนั้น 0 ถ้าไม่มีข้อผิดพลาดข้อความข้อความจะพร้อมใช้งาน?
พารามิเตอร์
lpszError
ตัวชี้การบัฟเฟอร์ที่จะได้รับข้อความแสดงข้อผิดพลาด?
nMaxError
จำนวนสูงสุดของอักขระบัฟเฟอร์ที่สามารถเก็บ รวมทั้งการเทอร์มิเนเตอร์NULL?
pnHelpContext
อยู่ของUINTที่จะได้รับรหัสในบริบทความช่วยเหลือ ถ้าไม่มี ID, NULLจะถูกส่งกลับ?
หมายเหตุ
เรียกฟังก์ชันนี้สมาชิกเพื่อให้ข้อความเกี่ยวกับข้อผิดพลาดที่เกิดขึ้น ตัวอย่างเช่น เรียกGetErrorMessageในการเรียกสายอักขระที่อธิบายความผิดพลาดที่เกิดจาก MFC ทิ้งCFileExceptionเมื่อเขียนวัตถุCFile?
หมายเหตุ GetErrorMessageจะไม่คัดลอกมากกว่าอักขระบัฟเฟอร์nMaxError -1และเสมอจะเพิ่มค่า null ต่อท้ายจบ string.nbsp ถ้าบัฟเฟอร์มีขนาดเล็กเกินไป ความผิดพลาดอาจถูกตัดทอน(&N)?
ตัวอย่าง
นี่คือตัวอย่างของการใช้CException::GetErrorMessage?
CFile fileInput
CFileException อดีต
/ / พยายามเปิดแฟ้มสำหรับการอ่าน
/ / แฟ้มจะแน่นอนไม่
/ / มีอยู่เนื่องจากมีมากเกินไปอย่างชัดเจน
/ / ไดเรกทอรีในชื่อ
/ / ถ้าการล้มเหลวในการเรียกไปยัง Open() จะเป็นอดีต
/ / เตรียมใช้งาน ด้วยข้อยกเว้น
/ / information.nbsp การเรียกเพื่อแลกเปลี่ยนGetErrorMessage()
/ / จะดึงข้อความที่เหมาะสมการอธิบาย
/ / ข้อผิดพลาด และเราจะเพิ่มข้อความของเราเอง
/ / เพื่อทำให้แน่ใจว่า ผู้ใช้อย่างถ่องแท้แน่ใจอะไร
/ / ผิด
ถ้า (! fileInput.Open ("\\Too\\Many\\Bad\\Dirs.DAT", CFile::modeRead และอดีต))
{
TCHAR szCause [255];
CString strFormatted
อดีตGetErrorMessage (szCause, 255);
/ / (ในชีวิตจริง มันคงเพิ่มเติม
/ / ความเหมาะสมกับอ่านจาก
/ / ทรัพยากรสตริดังนั้นมันจะง่าย
/ / ทราบตำแหน่ง)
strFormatted = _T ("ไม่สามารถเปิดแฟ้มข้อมูลเนื่องจากความผิดพลาดนี้: ");
strFormatted += szCause
AfxMessageBox(strFormatted)
}
อื่น
{
/ / เปิดแฟ้ม ดังนั้นการทำงานใด ๆ ก็ตาม
/ / กับ fileInput
/ / เราได้วางแผน...
// :
fileInput.Close()
}(&N)
ภาพรวม CException |nbsp สมาชิกของคลาส| แผนภูมิของลำดับชั้น(&N)
ดูเพิ่มเติมnbspCException::ReportError(&N)