บทนำสั้น ๆ
ASP นั้นง่ายมากที่นักพัฒนาหลายคนไม่คิดเกี่ยวกับการจัดการข้อผิดพลาด การจัดการข้อผิดพลาดที่ถูกต้องสามารถทำให้แอปพลิเคชันของคุณมีเหตุผลมากขึ้น ฉันเคยเห็นเว็บไซต์เชิงพาณิชย์จำนวนมากที่เขียนใน ASP ซึ่งส่วนใหญ่ไม่สนใจการจัดการข้อผิดพลาด
มีข้อผิดพลาดหลักสามประเภท:
ข้อผิดพลาดในการรวบรวม:
ข้อผิดพลาดประเภทนี้เกิดขึ้นโดยทั่วไปเนื่องจากปัญหาไวยากรณ์ของรหัส
คำกริยา ASP หยุดทำงานเนื่องจากข้อผิดพลาดในการรวบรวม
เรียกใช้ข้อผิดพลาด
ข้อผิดพลาดนี้เกิดขึ้นเมื่อคุณพร้อมที่จะเรียกใช้ ASP
ตัวอย่างเช่น: หากคุณพยายามกำหนดค่าให้กับตัวแปร แต่มันเกินขอบเขตที่ตัวแปรอนุญาต
ข้อผิดพลาดเชิงตรรกะ
ข้อผิดพลาดเชิงตรรกะนั้นยากที่สุดในการตรวจจับ ข้อผิดพลาดประเภทนี้มักจะเป็นข้อผิดพลาดเชิงโครงสร้างที่คอมพิวเตอร์ไม่สามารถค้นพบได้
สิ่งนี้ต้องการให้เราตรวจสอบรหัสของเราอย่างละเอียด
เนื่องจากข้อผิดพลาดในการรวบรวมมักเกิดขึ้นพร้อมกับข้อผิดพลาดเชิงตรรกะและสามารถแสดงได้โดยทั่วไปสิ่งที่เรากังวลคือข้อผิดพลาดในการดำเนินการ ทุกอย่างยุติการทำงานของ ASP และทิ้งข้อความที่ไม่เป็นมิตรสำหรับผู้ใช้
ดังนั้นเราจะจัดการกับข้อผิดพลาดในการดำเนินการได้อย่างไร! - ก่อนอื่นมาดูคำสั่งข้อผิดพลาดเพียงอย่างเดียวที่เรามอบให้โดย ASP - ONERRORRESUMENEXT (ฉันต้องการเตือนผู้เริ่มต้นที่นี่ว่ามีคำสั่ง ONERRORSUMENEXT เท่านั้นใน ASP ไม่มีคำสั่ง onerRorSumeGoto) หากคุณไม่ได้ใช้คำสั่ง onerrorresumenext ข้อผิดพลาดการดำเนินการทั้งหมดจะเกิดขึ้น นี่คือร้ายแรงจากนั้นรหัสข้อผิดพลาดจะ "แสดง" ต่อผู้ใช้และโปรแกรม ASP ก็จะหยุดลง
นี่คือรหัสข้อผิดพลาด:
ผู้ให้บริการ Microsoft OLEDB สำหรับ ODBCDriversError80004005
[Microsoft] [ODBCDriverManager] DataSourCenamenotFoundEdedandNodeFaultDriving
/test.asp,line60
เมื่อเราใช้คำสั่ง onerrorresumenext ที่ด้านบนของโปรแกรมข้อผิดพลาดทั้งหมดจะถูกละเว้นและโปรแกรมจะเรียกใช้คำสั่งถัดไปโดยอัตโนมัติ ด้วยวิธีนี้โปรแกรมจะถูกดำเนินการอย่างสมบูรณ์และผู้ใช้จะไม่เห็นข้อความแสดงข้อผิดพลาดหลังจากเกิดข้อผิดพลาด แต่ก็มีข้อเสียในวิธีนี้นั่นคือถ้าโปรแกรมไม่ดำเนินการตามที่คุณจินตนาการมันจะเป็นเรื่องยากสำหรับคุณที่จะค้นหาว่ามีอะไรผิดปกติดังนั้นคุณต้องจัดการกับข้อผิดพลาดที่จำเป็น
การจัดการข้อผิดพลาด
ใน ASP วิธีที่ดีที่สุดในการจัดการกับข้อผิดพลาดคือการวางรหัสที่ด้านล่างของโปรแกรมเพื่อจัดการกับข้อผิดพลาด ฉันยังแนะนำให้ใช้บัฟเฟอร์ในโปรแกรม ASP ทุกโปรแกรม ด้วยวิธีนี้หากเกิดข้อผิดพลาดหน้าจะหยุดและเนื้อหาหน้าจะถูกล้างเพื่อให้ผู้ใช้จะไม่เห็นข้อความแสดงข้อผิดพลาดและจะมีการร้องเรียนน้อยลงเกี่ยวกับคุณ! นี่คือตัวอย่าง:
<%@language = "vbscript"%>
<%'ตั้งบัฟเฟอร์เป็นจริง
response.buffer = true
'เริ่มการจัดการข้อผิดพลาด
onerrorresumenext
-
การจัดการข้อผิดพลาด <%'
iferr.number <> 0 แล้ว
'ล้างหน้า
Response.Clear
'แสดงข้อความแสดงข้อผิดพลาดถึงผู้ใช้