การจัดการข้อผิดพลาด ASP และ COM

เรากำลังพัฒนาเว็บเซิร์ฟเวอร์ที่ใช้ ASP เพื่อทำงานบนอุปกรณ์ WIN CE เพจ ASP ใช้คอมโพเนนต์ COM สำหรับการดำเนินการฝั่งเซิร์ฟเวอร์

เรามีข้อสงสัยสองสามข้อเกี่ยวกับการจัดการข้อผิดพลาด ข้อสงสัยของเราก็คือ

วิธีที่ดีที่สุดในการให้ข้อมูลข้อผิดพลาดจากคอมโพเนนต์ COM ไปยังเพจ ASP คืออะไร เรากำลังใช้ VBScript ในการเขียน ASP
หากเราจะแสดงข้อความแสดงข้อผิดพลาดเฉพาะ เช่น 'Connection Timeout' ที่ได้รับจากเซิร์ฟเวอร์ COM กลไกใดที่ดีที่สุดในการส่งข้อความแสดงข้อผิดพลาดจาก COM คืออะไร เราจะหาข้อมูลเพิ่มเติมเกี่ยวกับการจัดการข้อผิดพลาดได้จากที่ไหน

เรายังใหม่กับ VBScript และเราไม่พบข้อมูลมากนักเกี่ยวกับหัวข้อนี้ในเน็ต


person Maanu    schedule 02.06.2011    source แหล่งที่มา
comment
เหตุใดคุณจึงพยายามใช้เทคโนโลยีเก่าเช่น VBScript และ ASP แบบคลาสสิก คุณไม่ได้รับเบาะแสจากข้อเท็จจริงที่ว่าคุณไม่พบเอกสารซึ่งอาจมีวิธีที่ดีกว่านี้ใช่ไหม   -  person DOK    schedule 02.06.2011
comment
@DOK: ลูกค้าระบุว่าต้องใช้ ASP และ VBScript   -  person Maanu    schedule 02.06.2011
comment
ลูกค้ารู้หรือไม่ว่า ASP ล้าสมัย? คุณแน่ใจหรือว่าลูกค้าไม่ได้หมายถึง ASP.NET และ VB.NET   -  person John Saunders    schedule 03.06.2011
comment
@John AFAIK ไม่มีการรองรับ asp.net ใน Windows CE   -  person yms    schedule 04.06.2011
comment
@yms: เพิ่งจับได้ว่าเว็บเซิร์ฟเวอร์ทำงาน บน อุปกรณ์ Windows CE! ฉันแก้ไขคำถามเพื่อให้ชัดเจนยิ่งขึ้น คำวิจารณ์ของฉันมีพื้นฐานอยู่บนสมมติฐานที่ว่ามีสิ่งที่ดีกว่ามีอยู่ เห็นได้ชัดว่าไม่มี   -  person John Saunders    schedule 04.06.2011


คำตอบ (2)


โดยทั่วไปวิธีการอ็อบเจ็กต์ COM จะส่งคืน HRESULT ซึ่งมีรหัสข้อผิดพลาดในกรณีที่เกิดความล้มเหลว คุณสามารถลองรับค่านี้ใน VB.Script ได้โดยการอ่านคุณสมบัติ ข้อผิดพลาดหมายเลข

person yms    schedule 03.06.2011
comment
วัตถุ COM บางอย่างจะใช้ IErrorInfo ด้วย - person John Saunders; 04.06.2011

นี่เป็นแนวทางหนึ่งที่อาจใช้ได้ผลสำหรับคุณ วางการเรียกของคุณไปที่วัตถุ COM ภายในส่วนย่อยหรือฟังก์ชัน เพื่อให้คุณสามารถใช้ 'On Error Resume Next' ภายในขอบเขตนั้นได้ (เว้นแต่ว่าคุณกำลังทำ On Error Resume Next ทุกที่ ซึ่งก็อาจจะใช้ได้เช่นกัน ตราบใดที่คุณกำลังตรวจสอบข้อผิดพลาดมากมาย) เมื่อใดก็ตามที่คุณทำอะไรก็ตามที่อาจทำให้เกิดข้อผิดพลาด เช่น เรียกวัตถุ COM ของคุณ ตรวจสอบข้อผิดพลาด และจัดการตามนั้น ตัวอย่างเช่น ในกรณีที่คุณต้องการบันทึกข้อผิดพลาดแบบเงียบๆ คุณสามารถเรียกส่วนย่อยที่คล้ายกับอันนี้:

Sub CheckError
    If Err Then
        WriteLog "ERROR " & Err.Number & ": " & Err.Description
        Err.Clear
    End If
End Sub 'CheckError

หรืออีกวิธีหนึ่ง ให้ออก และแสดงข้อมูลข้อผิดพลาดแก่ผู้ใช้

person Bob Johnson    schedule 29.09.2011