แนะนำ: การรวบรวมฟังก์ชั่นที่เป็นประโยชน์ในการพัฒนา ASP (1) คอลเลกชันของฟังก์ชั่นที่มีประโยชน์ในการพัฒนา ASP มีประโยชน์มาก! ฉันหวังว่าทุกคนจะเก็บไว้! % '**********************************************************************************************************************************************************************************
ใน VBScript มีข้อผิดพลาดในการดำเนินการต่อคำสั่งถัดไปที่ทำให้สคริปต์ล่ามเพื่อละเว้นข้อผิดพลาดรันไทม์และดำเนินการต่อของรหัสสคริปต์ต่อไป จากนั้นสคริปต์สามารถตรวจสอบค่าของคุณสมบัติ err.number เพื่อตรวจสอบว่าเกิดข้อผิดพลาดหรือไม่ หากเกิดข้อผิดพลาดค่าที่ไม่เป็นศูนย์จะถูกส่งคืน ใน ASP 3.0 คุณสามารถใช้ข้อผิดพลาด GOTO 0 เพื่อกลับไปที่การจัดการข้อผิดพลาดเริ่มต้น การประมวลผลประเภทนี้ดำเนินการจริงใน ASP 2.0 แต่ไม่มีคำอธิบายเอกสารที่สอดคล้องกันซึ่งเป็นเรื่องปกติในไฟล์การประมวลผลที่เกี่ยวข้องกับข้อมูล ASP จำนวนมาก เพิ่มข้อผิดพลาดกลับมาทำงานถัดไปเพื่อปิดการประมวลผลข้อผิดพลาดเริ่มต้นจากนั้นใช้ ERR เพื่อจับมันถ้าเอ่อแล้ว
err.lear
เกิดข้อผิดพลาดในการตอบสนองเขียน!
Response.end
สิ้นสุดถ้า
เพื่อให้ได้คำอธิบายข้อผิดพลาดโดยละเอียดเพิ่มเติมลองมาลองวัตถุ Asperror มันเป็นวัตถุใหม่ของ asp3.0 สามารถรับได้ผ่าน วิธี getLasterror ของวัตถุเซิร์ฟเวอร์ Asperror ให้ข้อมูลโดยละเอียดเกี่ยวกับข้อผิดพลาด สุดท้าย ใน ASP ซึ่งแตกต่างจากวัตถุ ERR ใน VBScript วิธีนี้ไม่สามารถเรียกได้ตลอดเวลาเพื่อดูว่าเกิดข้อผิดพลาดหรือไม่ สามารถใช้งานได้ในหน้าเว็บข้อผิดพลาดที่กำหนดเอง ASP เท่านั้น หากคุณใช้มันโดยการปิดการจัดการข้อผิดพลาดเริ่มต้น (โดยใช้คำสั่ง ON ERROR RESUME NEXT) เช่นการใช้วัตถุ ERR วิธีวิธี GetLasterRor ไม่สามารถเข้าถึงข้อมูลโดยละเอียดของข้อผิดพลาดได้
คุณสมบัติของวัตถุ Asperror:
วัตถุ Asperror ให้คุณลักษณะเก้าอย่างเพื่อระบุลักษณะและแหล่งที่มาของข้อผิดพลาดที่เกิดขึ้นและส่งคืนรหัสจริงที่ทำให้เกิดข้อผิดพลาด คุณสมบัติและคำอธิบายมีดังนี้:
Aspcode: จำนวนเต็ม หมายเลขข้อผิดพลาดที่สร้างโดย ASP/IIS เช่น 0x800A009
Aspdescription: ประเภทสตริง หากข้อผิดพลาดนี้เป็นข้อผิดพลาดที่เกี่ยวข้องกับ ASP คุณสมบัตินี้เป็นคำอธิบายโดยละเอียดของข้อผิดพลาด ตัวอย่างเช่น: http ทั้งหมด: http_accept:*/* http_accept_language: zh-cn http_connection: Keep-alive http_host: s http_user_agent: mozilla/4.0 (เข้ากันได้; msie 6.0; windows nt 5.0;
หมวดหมู่: ประเภทสตริง แหล่งที่มาของข้อผิดพลาดคือภาษาสคริปต์ภายใน ASP หรือวัตถุ
คอลัมน์: จำนวนเต็ม ตำแหน่งอักขระในไฟล์ที่สร้างข้อผิดพลาด
คำอธิบาย: ประเภทสตริง คำอธิบายสั้น ๆ ของข้อผิดพลาด
ไฟล์: ประเภทสตริง ชื่อของไฟล์ที่ถูกประมวลผลเมื่อเกิดข้อผิดพลาด
บรรทัด: จำนวนเต็ม หมายเลขบรรทัดในไฟล์ที่สร้างข้อผิดพลาด
หมายเลข: จำนวนเต็ม รหัสข้อผิดพลาด com มาตรฐาน
ที่มา: ประเภทสตริง รหัสจริงของบรรทัดที่ทำให้เกิดข้อผิดพลาด
ตกลงนี่คือ 9 คุณสมบัติ ไวยากรณ์ของการใช้วัตถุ Asperror คือ:
asperror.property
นั่นคือ: asperror.aspcode ()
asperror.aspdescription ()
Asperror.category ()
asperror.column ()
asperror.description ()
asperror.file ()
asperror.line ()
asperror.number ()
asperror.source ()
เมื่อข้อผิดพลาดที่เกี่ยวข้องกับ ASP เกิดขึ้นในหน้าใด ๆ ภายใต้ไดเรกทอรีทั้งหมดที่สนับสนุนโดย IIS (หรือในไดเรกทอรีที่มีการแก้ไขคุณสมบัติการแมปข้อผิดพลาด) หน้าข้อผิดพลาดที่กำหนดเองจะถูกโหลด อันที่จริงแล้วมีการตั้งค่ากับดักข้อผิดพลาดของสคริปต์ปกติแล้วเนื่องจากข้อผิดพลาดของ ASP Runtime บนหน้าเว็บใด ๆ ในไดเรกทอรีนี้จะทริกเกอร์หน้าข้อผิดพลาดที่กำหนดเอง หน้าเว็บข้อผิดพลาดเป็นส่วนการติดตั้งเริ่มต้นของ IIS และสามารถปรับแต่งได้ตามสถานการณ์ส่วนบุคคล ตัวอย่างเช่นเมื่อเราเข้าสู่หน้าเว็บที่ไม่มีอยู่จริงในไดเรกทอรีจะเกิดข้อผิดพลาด 404 ข้อ เมื่อเกิดข้อผิดพลาด 404 หน้าที่ใช้คือ 404b.htm ไฟล์นี้มีส่วนรหัสสคริปต์ไคลเอนต์ซึ่งได้รับ URL ของเอกสารปัจจุบัน (ดึงข้อมูลจากแอตทริบิวต์ URL ของวัตถุเอกสาร) และแสดงในหน้า: [html] <! Doctype HTML สาธารณะ -// w3c // dtd html 3.2 สุดท้าย // en>
<html dir = ltr>
<head>
<style> a: ลิงก์ {ตัวอักษร: 9pt/11pt 环; สี: ff0000} a: เยี่ยมชม {ตัวอักษร: 9pt/11pt 环; สี:#4E4E4E}
</style>
<meta name = robots content = noindex>
<title> ไม่สามารถค้นหาเว็บเพจ </title> ได้
<meta http-equiv = เนื้อหาประเภทเนื้อหา = text-html; charset = gb2312>
<meta name = ms.locale content = zh-cn>
</head>
<script>
ฟังก์ชั่นโฮมเพจ () {
-
// ในบิตจริง URL จะถูกส่งกลับไปยังสคริปต์ของเราเช่นนี้:
// res: //shdocvw.dll/http_404.htm#http: //www.docurl.com/bar.htm
// สำหรับการทดสอบใช้ docurl = res: //shdocvw.dll/http_404.htm#https: //www.microsoft.com/bar.htm
docurl = document.url;
// นี่คือที่ที่ http หรือ https จะเป็นตามที่พบโดยการค้นหา: // แต่ข้าม res: //
ProtocolIndex = docurl.indexof (: //, 4);
// สิ่งนี้พบว่าสแลชที่สิ้นสุดสำหรับเซิร์ฟเวอร์โดเมน
ServerIndex = docurl.indexof (/, ProtocolIndex + 3);
// สำหรับ HREF เราต้องการ URL ที่ถูกต้องไปยังโดเมน เราค้นหาสัญลักษณ์ # เพื่อค้นหาจุดเริ่มต้น
// ของ URL ที่แท้จริงและเพิ่ม 1 เพื่อข้าม - นี่คือค่าเริ่มต้น เราใช้ ServerIndex เป็นเครื่องหมายสิ้นสุด
//URLRESULT=DOCURL.SUBSTRING(PROTOCOLINDEX - 4, ServerIndex);
beartUrl = docurl.indexof (#, 1) + 1;
urlresult = docurl.substring (engerurl, serverindex);
// สำหรับการแสดงผลเราต้องข้ามไปหลังจาก http: // และไปที่ Slash ถัดไป
displayResult = docurl.substring (ProtocolIndex + 3, ServerIndex);
insertElementAnchor (urlresult, displayResult);
-
ฟังก์ชั่น htmlencode (ข้อความ)
-
ส่งคืน text.replace (/&/g, '& amp'). แทนที่ (/'/g,' & quot; '). แทนที่ (/</g,' & lt; '). แทนที่ (// g,' & gt; ');
-
ฟังก์ชั่น tagattrib (ชื่อ, ค่า)
-
return ''+name+'='+htmlencode (value)+'';
-
ฟังก์ชั่น printtag (tagname, needclosetag, attrib, ด้านใน) {
document.write ('<' + tagname + attrib + '>' + htmlencode (ภายใน));
if (needclosetag) document.write ('</' + tagname + '>');
-
ฟังก์ชั่น URI (HREF)
-
iever = window.navigator.Appversion;
iever = iever.substr (iever.indexof ('msie') + 5, 3);
return (iever.charat (1) == '.' && iever> = '5.5')?
encodeuri (href):
Escape (href). แทนที่ (/%3a/g, ':'). แทนที่ (/%3b/g, ';');
-
ฟังก์ชั่น insertElementAnchor (href, text)
-
printtag ('a', true, tagattrib ('href', uri (href)), ข้อความ);
-
-
</script>
<body bgcolor = ffffff>
<ความกว้างของตาราง = 410 cellpadding = 3 cellpacing = 5>
<tr>
<td align = left valign = ความกว้างกลาง = 360>
<h1 style = color: 000000; แบบอักษร: 12pt/15pt songti> <!-ปัญหา-> หน้าเว็บไม่สามารถพบได้ </h1>
</td>
</tr>
<tr>
<td width = 400 colspan = 2> <font style = color: 000000; แบบอักษร: 9PT/11PT> หน้าเว็บที่คุณกำลังค้นหาอาจถูกลบเปลี่ยนชื่อหรือไม่สามารถใช้งานได้ชั่วคราว </font> </td>
</tr>
<tr>
<td width = 400 colspan = 2> <font style = color: 000000; แบบอักษร: 9pt/11pt Song Font>
<hr color =#c0c0c0 noshade>
<p> โปรดลองสิ่งต่อไปนี้: </p>
<ul>
<li> หากคุณพิมพ์ที่อยู่เว็บในแถบที่อยู่ให้ตรวจสอบว่ามีการสะกดอย่างถูกต้อง <br>
</li>
<li> เปิด <Script>
-
if (! ((((window.navigator.useragent.indexof (msie)> 0) && (window.navigator.appversion.charat (0) == 2)))
-
หน้าแรก ();
-
-
</script> โฮมเพจค้นหาลิงก์ไปยังข้อมูลที่ต้องการ </li>
<li> คลิกปุ่ม <a href = javaScript: history.back (1)> ย้อนกลับ </a> ปุ่มเพื่อลองลิงค์อื่น ๆ </li>
</ul>
<h2 style = font: 9pt/11pt songti; สี: 000000> http 404 - ไม่พบไฟล์ <br> บริการข้อมูลอินเทอร์เน็ต <br> </h2>
<hr color =#c0c0c0 noshade>
<p> ข้อมูลทางเทคนิค (สนับสนุนบุคคล) </p>
<ul>
<li> รายละเอียด: <br> <a href = http: //www.microsoft.com/contentredirect.asp? prd = iis & sbp = & pver = 5.0 & pid = & id = 404 & cat = web & os = & over = hrd = & opt1 = & opt2 = & opt3
</li>
</ul>
</font> </td>
</tr>
</table>
</body>
</html>
[/html]
เมื่อเกิดข้อผิดพลาดความสัมพันธ์การแมประหว่างข้อผิดพลาดและไฟล์หน้าเว็บข้อผิดพลาดจะถูกกำหนดในแท็บข้อผิดพลาดที่กำหนดเองของกล่องโต้ตอบคุณสมบัติของแต่ละไดเรกทอรี นี่คือการตั้งค่าคุณสมบัติในผู้จัดการบริการอินเทอร์เน็ต หากคุณสนใจไปดู
ข้อผิดพลาดที่กำหนดเองเว็บเพจแสดงค่าทั้งหมดของแอตทริบิวต์วัตถุ Asperror และส่งคืนข้อความสถานะส่วนหัว HTTP ไปยังไคลเอนต์โดยใช้วิธีการตอบสนอง Status ซึ่งระบุว่าเกิดข้อผิดพลาด จากนั้นใช้เมธอด getLasterror เพื่อรับการอ้างอิงไปยังวัตถุ Asperror เพื่อให้คุณสามารถเข้าถึงข้อมูลโดยละเอียดของข้อผิดพลาด:
-
-
Response.status = 500 ข้อผิดพลาดเซิร์ฟเวอร์ภายใน
ตั้งค่า objaspeerror = server.getLasterror ()
-
ขณะนี้กำลังดำเนินการหน้า: <b> show_error.asp </b> <p>
<b> รายละเอียดข้อผิดพลาด: </b> <br>
asperror.aspcode = < % = objaspeerror.aspcode %> <br>
asperror.number = < % = objaspeerror.number %> (0x < % = hex (objaspeerror.number) %>) <br>
asperror.source = < % = server.htmlencode (objasperror.source) %> <br>
asperror.category = < % = objaspeerror.category %> <br>
asperror.file = < % = objaspeerror.file %> <br>
asperror.line = < % = objaspeerror.line %> <br>
asperror.column = < % = objaspeerror.column %> <br>
asperror.description = < % = objaspeerror.description %> <br>
asperror.aspds = < % = objaspeerror.aspds %>
<form action = < % = request.ServerVariables (http_referer) %> method = post>
<อินพุตประเภท = ส่งชื่อ = cmdok value = กลับไปที่หน้าก่อนหน้า>
<p>
</ฟอร์ม> หากข้อผิดพลาดสคริปต์หรือ ASP เกิดขึ้นในหน้าข้อผิดพลาดที่กำหนดเอง IIS จะส่งคืนข้อความทั่วไปที่สอดคล้องกับรหัสข้อผิดพลาด 500: 100 เท่านั้น นี่อาจเป็นข้อความแสดงข้อผิดพลาดจากเอ็นจินสคริปต์เองหรือเพียงแค่ข้อความที่ค่อนข้างง่าย: ข้อผิดพลาดของเซิร์ฟเวอร์ภายใน หน้าข้อผิดพลาดที่กำหนดเองจะไม่ถูกโหลดอีกครั้ง
สภาพแวดล้อมทั้งหมดที่มีหน้าเว็บที่ไม่ถูกต้องจะถูกส่งไปยังหน้าเว็บผิดที่กำหนดเอง นั่นคือค่าที่เก็บไว้ในการรวบรวมวัตถุภายในหรือแอตทริบิวต์ใด ๆ ของ ASP สามารถใช้งานได้ ตัวอย่างเช่นหากคุณดึงค่า http_referer จากการร้องขอการรวบรวม ServerVariables มันจะสะท้อน URL ของหน้าเว็บที่เรียกว่าหน้าต้นฉบับ (เช่นหน้าก่อนเกิดข้อผิดพลาด) ค่านี้ไม่เปลี่ยนแปลงเมื่อเซิร์ฟเวอร์ถ่ายโอนการดำเนินการไปยังหน้าเว็บที่ไม่ถูกต้องและจะไม่มี URL ของหน้าเว็บที่กำลังดำเนินการเมื่อเกิดข้อผิดพลาด
ในทำนองเดียวกันค่า script_name จะเป็นชื่อของหน้าเว็บที่มีข้อผิดพลาดไม่ใช่ URL ของหน้า เมื่อมีการโหลดหน้าข้อผิดพลาดคุณสามารถยืนยันสิ่งนี้ได้โดยตรวจสอบ URL ในแถบที่อยู่ของเบราว์เซอร์ อย่างไรก็ตามค่าที่เก็บไว้ในตัวแปรสคริปต์ของหน้าเว็บดั้งเดิมไม่สามารถใช้งานได้ในหน้าเว็บผิดที่กำหนดเอง
หากเว็บเพจ ASP ดั้งเดิมทำงานอยู่ภายในการทำธุรกรรมนั่นคือมี < % @transaction = … %> คำสั่งที่ด้านหน้าของหน้าเว็บคุณควรพิจารณาด้วยว่าจำเป็นต้องใช้วิธีการบางอย่างในหน้าเว็บเพื่อออกจากการทำธุรกรรมหรือไม่ ตัวอย่างเช่นคุณสามารถเรียกวิธีการ setabort ด้วยวัตถุ ObjectContext ในตัว:
ObjectContext.setabort
เวลาส่วนหน้าได้ส่งอีเมลสแปมหลายพันฉบับซึ่งทั้งหมดนี้ได้รับการจัดการข้อผิดพลาด
ตัวเลือกอย่างชัดเจน
Response.addheader รหัสสถานะ, 200
Response.addheader เหตุผลตกลง
เมื่อเกิดข้อผิดพลาดต่อไป
Response.Clear
หรี่
ตั้งค่า objerror = server.getLasterror ()
Dim Objerr, Objmail, HTML
ตั้งค่า objerr = server.getLasterRor ()
ตั้งค่า objmail = createObject (cdonts.newmail)
objmail.from = [email protected]
objmail.to = [email protected]
objmail.bodyformat = 0
objmail.mailformat = 0
objmail.subject = qop error 500
html = <font face = 'verdana, arial, helvetica, sans-serif'> <br>
html = html & <p> เกิดข้อผิดพลาดที่: & ตอนนี้
html = html & <p> อ้างอิงจาก: & request.serverVariables (http_referer)
html = html & <p> url: & request.serverVariables (URL)
html = html & <p> <b> หมวดหมู่: </b> </p> & objerr.category
html = html & <p> <b> ชื่อไฟล์: </b> </p> & objerr.file
html = html & <p> <b> รหัส ASP: </b> </p> & objerr.aspcode
html = html & <p> <b> หมายเลข: </b> </p> & objerr.number
html = html & <p> <b> ที่มา: </b> </p> & objerr.source
html = html & <p> <b> ผ้าลินิน: </b> </p> & objerr.line
html = html & <p> <b> คอลัมน์: </b> </p> & objerr.column
html = html & <p> <b> คำอธิบาย: </b> </p> & objerr.description
html = html & <p> <b> คำอธิบาย ASP: </b> </p> & objerr.aspdescription
html = html & <blockquote>
html = html & ทั้งหมด http: & request.servervariables (all_http)
html = html & </blockquote> </font>
objmail.body = html
objmail.send
objerr.Clear
ตั้งค่า objmail = ไม่มีอะไร
ตั้งค่า objerr = ไม่มีอะไร
Response.write (HTML)
นี่เป็นสิ่งที่น่ารำคาญจริงๆที่จะใช้งาน ดูสิ่งที่ Mr. Lao Gai เขียนใน 500-100.asp:
-
Response.write objasperror.category
ถ้า objaspeerror.aspcode> response.write & objaspeerror.aspcode
Response.write (0x & hex (objasperror.number) &) & <br>
Response.write <b> & objasperror.description & </b> <br>
ถ้า objaspeerror.aspds> response.write objaspeerror.aspds & <br>
blnerrorwritten = false
'แสดงเฉพาะแหล่งที่มาหากมีอยู่และคำขอมาจากเครื่องเดียวกันกับ IIS
ถ้า objaspeerror.source> แล้ว
strservername = lcase (request.serverVariables (server_name))
strServerip = request.serverVariables (local_addr)
strremoteip = request.serverVariables (remote_addr)
ถ้า (strservername = localhost หรือ strserverip = strremoteip) และ objasperror.file <>? แล้ว
Response.write objasperror.file
ถ้า objasperror.line> 0 จากนั้นตอบสนองการเขียน, line & objasperror.line
ถ้า objaspeerror.column> 0 จากนั้น Response.write คอลัมน์และ objaspeerror.column
Response.write <br>
Response.write <font style = color: 000000; แบบอักษร: 8pt/11pt Courier ใหม่> <b>
Response.write Server.htmlencode (objasperror.source) & <br>
ถ้า objaspeerror.column> 0 จากนั้น Response.Write String ((ObjaspeerRor.Column - 1), -) & ^<br>
Response.write </b> </font>
blnerrorwritten = true
สิ้นสุดถ้า
สิ้นสุดถ้า
ถ้าไม่ blnerrortrinted และ objasperror.file <>? แล้ว
response.write <b> & objasperror.file
ถ้า objasperror.line> 0 จากนั้นตอบสนองการเขียน, line & objasperror.line
ถ้า objaspeerror.column> 0 จากนั้น Response.write คอลัมน์และ objaspeerror.column
Response.write </b> <br>
สิ้นสุดถ้า
-
นี่คือการอ้างอิง: การเขียนโปรแกรมขั้นสูง ASP 3.0 เกี่ยวกับคุณสมบัติของการใช้วัตถุ Asperror มีประเด็นต่อไปนี้ที่ควรค่าแก่การสังเกต:
·แม้ว่าจะไม่มีข้อผิดพลาดเกิดขึ้นคุณสมบัติตัวเลขควรมีค่าเสมอ หากไม่มีข้อผิดพลาดเกิดขึ้นเมื่อเว็บเพจ ASP เรียกใช้เมธอด getLasterror ค่าของคุณสมบัตินี้คือ 0 โดยปกติสำหรับข้อผิดพลาดรันไทม์ของสคริปต์ ASP หมายเลขคุณสมบัติจะส่งคืนค่าเลขฐานสิบหก 0x800A0000 รวมถึงรหัสข้อผิดพลาดของเอ็นจิ้นสคริปต์สคริปต์มาตรฐาน ตัวอย่างเช่นตัวอย่างก่อนหน้าจะส่งคืนค่า 0x800A0009 สำหรับตัวห้อยจากข้อผิดพลาดช่วงเนื่องจากรหัสข้อผิดพลาดสำหรับ VBScript สำหรับข้อผิดพลาดประเภทนี้คือ 9
·เมื่อมีข้อผิดพลาดผ่านไปคุณลักษณะหมวดหมู่และคำอธิบายจะมีค่าเสมอ
·ค่าของคุณสมบัติ APSCODE ถูกสร้างขึ้นโดย IIS และจะว่างเปล่าสำหรับข้อผิดพลาดสคริปต์ส่วนใหญ่ ในบางกรณีมีค่าที่สอดคล้องกันเมื่อมีการใช้ส่วนประกอบภายนอกข้อผิดพลาด
ค่าของคุณสมบัติ ASPDescription ถูกสร้างขึ้นโดยตัวประมวลผลล่วงหน้า ASP ไม่ใช่โดยเอ็นจินสคริปต์ที่ใช้อยู่ในปัจจุบันและจะว่างเปล่าสำหรับข้อผิดพลาดสคริปต์ส่วนใหญ่ บ่อยครั้งที่มีค่าที่สอดคล้องกันสำหรับข้อผิดพลาดเช่นการเรียกใช้วิธีที่ไม่ถูกต้องบนวัตถุในตัว ASP
·คุณสมบัติของไฟล์แหล่งที่มาบรรทัดและคอลัมน์สามารถตั้งค่าได้เฉพาะเมื่อเกิดข้อผิดพลาดและหากข้อมูลรายละเอียดข้อผิดพลาดพร้อมใช้งาน สำหรับข้อผิดพลาดรันไทม์คุณสมบัติของไฟล์และบรรทัดมักจะถูกต้อง แต่คุณสมบัติคอลัมน์มักจะส่งคืน -1 คุณสมบัติต้นฉบับจะถูกส่งคืนเมื่อข้อผิดพลาดเป็นข้อผิดพลาดทางไวยากรณ์ที่ป้องกันไม่ให้หน้าถูกประมวลผลโดย ASP โดยทั่วไปในกรณีเหล่านี้คุณสมบัติของบรรทัดและคอลัมน์นั้นถูกต้อง หากคุณเขียนค่าของคุณสมบัติต้นฉบับไปยังหน้าคุณควรส่งผ่านค่าไปยัง htmlencode ก่อนในกรณีที่มีอักขระ HTML ที่ผิดกฎหมาย วิธี HTMLencode จะถูกกล่าวถึงในรายละเอียดในภายหลังในบทนี้
Org Object
เคล็ดลับ: นี่เป็นครั้งที่สองที่ฉันเขียนสิ่งนี้ โฟกัสดั้งเดิมคือการเปิดตัววัตถุ Asperror ตอนนี้ฉันจะแนะนำวัตถุ ERR นี่เป็นวัตถุที่ง่ายและง่ายต่อการทำงาน ไปกันเถอะในหน้า ASP
เมื่อใช้วัตถุ ERR คุณไม่จำเป็นต้องสร้างอินสแตนซ์ซึ่งหมายความว่าคุณสามารถใช้งานได้อย่างไม่เป็นทางการเมื่อคุณต้องการใช้งาน เช่นเดียวกับเซสชันคุณไม่จำเป็นต้องสร้างอินสแตนซ์เช่นเมื่อใช้วัตถุ ADODB ตั้งค่า conn = server.createObject (adoDB.Connection) ใช้เพื่อสร้างอินสแตนซ์ มันส่งคืนรหัสข้อผิดพลาด แต่ err! = err.number สามารถล้างด้วยวิธีที่ชัดเจนเพื่ออำนวยความสะดวกในการใช้งานครั้งต่อไป วิธีหลักคือวิธีการอธิบายซึ่งส่งคืนคำอธิบายข้อผิดพลาดสั้น ๆ นี่คือตัวอย่างที่คลาสสิกมาก:
< %@ language = vbscript %>
<%response.buffer = true
เมื่อเกิดข้อผิดพลาดต่อไป
-
-
S = SA
Response.write (int (s))
ถ้า err.number <> 0 แล้ว
Response.Clear
เกิดข้อผิดพลาดในการตอบสนองการเขียน:%>
<html>
<head>
<title> </title>
</head>
<body>
หมายเลขข้อผิดพลาด: < %= err.number %> <br/>
ข้อความแสดงข้อผิดพลาด: < %= err.description %> <br/>
ไฟล์ข้อผิดพลาด: < %= err.source %> <br/>
บรรทัดข้อผิดพลาด: < %= err.line %> <br/>
< %= err %>
</body>
</html>
<%end ถ้า%>
เรียกใช้และดู err.line ว่างเปล่าทำไม? เนื่องจากวิธีการที่เขียนใน VB ของ ASP ไม่ได้รับการสนับสนุนนี่เป็นทรัพย์สินของเสียในการสนับสนุน vb.jscript และคุณต้องศึกษาเพื่อจับ
เป็นที่น่าสังเกตว่าเมื่อใช้วัตถุ ERR จะต้องเพิ่มข้อผิดพลาดต่อไปและข้อยกเว้นที่ผ่านวัตถุ Asperror จะถูกโยนทิ้งไป
เมื่อเชื่อมโยงฐานข้อมูลคุณสามารถใช้วัตถุข้อผิดพลาด: นับคุณสมบัติ: ใช้เพื่อนับจำนวนคอลเลกชันข้อผิดพลาดวิธีการรายการ: ใช้เพื่อระบุข้อผิดพลาดเฉพาะไวยากรณ์คือข้อผิดพลาด เนื่องจากรายการเป็นวิธีเริ่มต้นวิธีการเขียนข้อผิดพลาด (หมายเลข) เท่ากับวิธีก่อนหน้า ด้านล่างเป็นโปรแกรม ใช้เพื่อระบุวัตถุข้อผิดพลาด:
-
เมื่อเกิดข้อผิดพลาดต่อไป
SET Conn = Server.CreateObject (ADODB.Connection)
dim i, your_databasepath: your_databasepath = no.mdb
connstr = provider = microsoft.jet.oledb.4.0; แหล่งข้อมูล = & server.mappath (your_databasepath) &
conn.open connstr
ถ้า conn.errors.count <> 0 แล้ว
Response.write ล้มเหลวในการเชื่อมโยงฐานข้อมูล <HR/>
สำหรับ i = 0 ถึง conn.errors.count -1
Response.write conn.errors.item (i) & <hr>
Response.write err.description
ต่อไป
อื่น
Response.Write Link Database สำเร็จ
สิ้นสุดถ้า
conn.close
-
ไม่มีความแตกต่างระหว่างวัตถุ ERR คุณเคยเห็นผลการเปรียบเทียบหรือไม่? มันหนาวมากจนใช้วัตถุ ERR ได้ง่าย
โดยทั่วไปขอแนะนำให้ใช้วัตถุ Asperror ในระหว่างการดีบักซึ่งหมายความว่าหาก ON ERROR RESUME บรรทัดถัดไปคือ REM มันจะถูกโยนโดยค่าเริ่มต้นด้วย Asperror ในระหว่างการดำเนินการอย่างเป็นทางการคุณสามารถใช้วัตถุ ERR เพื่อทำอะไรบางอย่างเว้นแต่คุณจะมีข้อกำหนดพิเศษ
แบ่งปัน: การรวบรวมฟังก์ชั่นที่เป็นประโยชน์ในการพัฒนา ASP (2) คอลเลกชันของฟังก์ชั่นที่มีประโยชน์ในการพัฒนา ASP นั้นมีประโยชน์มากโปรดเก็บไว้! '*************************************' การกรองไฮเปอร์ลิงก์ '******************************* ฟังก์