จับและบันทึกโค้ดฟังก์ชันสำหรับข้อผิดพลาดในการรัน ASP เพื่อนที่ต้องการรับข้อผิดพลาดในการรันโค้ด asp สามารถอ้างถึงชื่อกระบวนการ: catch(str)
วิธีใช้:
คัดลอกรหัสรหัสดังต่อไปนี้:
เมื่อเกิดข้อผิดพลาดดำเนินการต่อต่อไป
'รหัสของคุณ เช่น การเชื่อมต่อฐานข้อมูล
รับสาย (ข้อความแจ้งเตือนที่แสดงต่อผู้ใช้)
ฟังก์ชัน: ล้างข้อความแสดงข้อผิดพลาด IIS ปรับแต่งข้อความแสดงข้อผิดพลาดและส่งคืนให้กับผู้ใช้ และบันทึกข้อความแสดงข้อผิดพลาดลงในไฟล์ txt (แน่นอน คุณยังสามารถแก้ไขเล็กน้อยเพื่อเปลี่ยนเส้นทางไปยังเพจที่กำหนดเองได้ เป็นต้น)
รหัส:
คัดลอกรหัสรหัสดังต่อไปนี้:
-
ตัวเลือกที่ชัดเจน
'ตัวอย่างที่ 1 ---------------------------
'ต้องใช้ควบคู่กับ on error resume ต่อไป แต่ทางที่ดีควรคอมเม้นท์ไว้ก่อนเว็บเพจจะออกอย่างเป็นทางการเพื่อไม่ให้เห็นรายละเอียด error ระหว่างการ debug
เมื่อเกิดข้อผิดพลาดดำเนินการต่อต่อไป
'ไม่ได้กำหนดไว้และจะเกิดข้อผิดพลาด ใช้ catch เพื่อล้างข้อผิดพลาดและบันทึกลงใน Notepad
ฉัน
จับสาย (ไม่สามารถเข้าถึงเพจได้)
-
'ตัวอย่างที่ 2 ---------------------------
ฟังก์ชั่นคอนน์()
'จะต้องใช้ร่วมกับเมื่อเกิดข้อผิดพลาดต่อดำเนินการต่อ
เมื่อเกิดข้อผิดพลาดดำเนินการต่อต่อไป
'............รหัสของคุณเพื่อเชื่อมต่อกับฐานข้อมูล
จับสาย (ข้อผิดพลาดในการเปิดฐานข้อมูล)
ฟังก์ชั่นสิ้นสุด
-
จับย่อย (str)
ถ้า err.number <> 0 แล้ว
tmp สลัวเส้นทาง
'เส้นทางที่แน่นอนของบันทึกข้อผิดพลาด เช่น /error_log.txt
เส้นทาง = /table/error_log.txt
tmp = tmp & หน้าข้อผิดพลาด: & geturl & vbcrlf
tmp = tmp & เวลาผิดพลาด: & ตอนนี้ () & vbcrlf
tmp = tmp & เยี่ยมชม IP: & ip & vbcrlf
tmp = tmp & ข้อความแจ้ง: & str & vbcrlf
tmp = tmp & รหัสข้อผิดพลาด: & err.number & vbcrlf
tmp = tmp & ข้อความแสดงข้อผิดพลาด: & err.description & vbcrlf
tmp = tmp & แอปพลิเคชัน: & err.source & vbcrlf & vbcrlf & vbcrlf
tmp = tmp & file_read (เส้นทาง)
โทร file_save (tmp, เส้นทาง, 1)
ผิดพลาด.ชัดเจน()
ตาย(str)
สิ้นสุดถ้า
จบย่อย
'ต่อไปนี้เป็นฟังก์ชันที่ใช้โดย catch --------------------
เสียงสะท้อนย่อย (str)
การตอบสนองเขียน (str)
จบย่อย
ส่วนย่อย(str)
เสียงสะท้อน(str) : response.end()
จบย่อย
ฟังก์ชั่นไอพี()
ip = request.servervariables (remote_addr)
ฟังก์ชั่นสิ้นสุด
'รับ URL ปัจจุบัน
ฟังก์ชัน geturl()
เวลาสลัว
ถ้า lcase(request.servervariables(https)) = ปิดแล้ว
tmp = http://
อื่น
tmp=https://
สิ้นสุดถ้า
tmp = tmp & request.servervariables (ชื่อเซิร์ฟเวอร์)
ถ้า request.servervariables(server_port) <> 80 แล้ว
tmp = tmp & : & คำขอเซิร์ฟเวอร์ตัวแปร (server_port)
สิ้นสุดถ้า
tmp = tmp & คำขอเซิร์ฟเวอร์ตัวแปร (url)
ถ้า trim(request.querystring) <> แล้ว
tmp = tmp & ? & ตัด (request.queryString)
สิ้นสุดถ้า
geturl = tmp
ฟังก์ชั่นสิ้นสุด
'ฟังก์ชั่น: อ่านเนื้อหาไฟล์เป็นสตริง'
ฟังก์ชั่น file_read (เส้นทาง)
tmp สลัว : tmp = เท็จ
ถ้าไม่มี file_exists(path) ดังนั้น file_read = tmp : exit function
สตรีมสลัว : ตั้งค่าสตรีม = server.CreateObject (ADODB.Stream)
พร้อมสตรีม
.type = 2 'ประเภทข้อความ
.mode = 3 'โหมดอ่านและเขียน
.charset = gb2312
.เปิด
.loadfromfile(server.MapPath(เส้นทาง))
tmp = .อ่านข้อความ()
ลงท้ายด้วย
stream.close : set stream = ไม่มีอะไร
file_read = tmp
ฟังก์ชั่นสิ้นสุด
'ฟังก์ชัน: บันทึกสตริงลงในไฟล์'
ฟังก์ชั่น file_save (str, เส้นทาง, โมเดล)
ถ้า model<>0 และ model<>1 ดังนั้น model=1
ถ้า model=0 และ file_exists(path) ดังนั้น file_save=true : exit function
สตรีมสลัว : ตั้งค่าสตรีม = server.CreateObject (ADODB.Stream)
พร้อมสตรีม
.type = 2 'ประเภทข้อความ
.charset = gb2312
.เปิด
.writetext STR
.savetofile(server.MapPath(path)),model+1
ลงท้ายด้วย
stream.close : set stream = ไม่มีอะไร
file_save = file_exists (เส้นทาง)
ฟังก์ชั่นสิ้นสุด
'ฟังก์ชัน: ตรวจสอบว่ามีไฟล์/โฟลเดอร์อยู่หรือไม่'
ฟังก์ชั่น file_exists (เส้นทาง)
สลัว tmp : tmp = เท็จ
dim fso : set fso = server.CreateObject(Scripting.FilesyStemObject)
ถ้า fso.fileexists(server.MapPath(path)) ดังนั้น tmp = true
ถ้า fso.folderexists(server.MapPath(path)) ดังนั้น tmp = true
ตั้งค่า fso = ไม่มีเลย
file_exists = tmp
ฟังก์ชั่นสิ้นสุด
-