如何在ASP中实现错误陷阱技术(即实现VB中的所谓的On Error GoTo)
代码如下(一共4个文件)
1。error1.asp(用来生成错误)
2。error2.asp
<%@ Language="vbscript"%>
<%
Response.buffer = True
On Error Resume Next
dim conn
dim rs
set conn = server.createobject("adodb.connection")
conn.open "Example_DSN"
If err.number <> 0 Then
Response.Redirect "Error3.asp?number=" & err.Number & "&desc=" & Server.URLEncode(err.description)
End If
set rs = server.createobject("adodb.recordset")
rs.open "TableName", conn, 3, 3
If err.number <> 0 Then
Response.Redirect "Error3.asp?number=" & err.Number & "&desc=" & Server.URLEncode(err.description)
End If
rs.addnew
rs("field1") = request.form("field1")
rs("field2") = request.form("field2")
rs.update
If err.number <> 0 Then
Response.Redirect "Error3.asp?number=" & err.Number & "&desc=" & Server.URLEncode(err.description)
End If
rs.close
conn.close
set rs = nothing
set conn = nothing
%>
操作完成!
3。error3.asp
<%@ language="vbscript"%> <%
response.buffer = True
dim strNumber
dim strdesc
dim conn
dim rs
strconn = "DRIVER=Microsoft Access Driver (*.mdb);DBQ=" & Server.MapPath("error.mdb")
strNumber = request("Number")
strDesc = request("Desc")
set conn = server.createobject("adodb.connection")
conn.open strconn
set rs = server.createobject("adodb.recordset")
rs.open "tblError", conn , 2, 2
rs.addnew
rs("ErrNumber") = strNumber
rs("ErrDesc") = strDesc
rs("timeoccurred") = now()
rs.update
rs.movelast
strID = rs("id")
rs.close
set rs = nothing
conn.close
set conn = nothing
err.clear
%>
发生错误
错误 ID 为:<% = strID %>
错误号为:
<% = strNumber %>
错误描述为:
<% = strDesc %>
4。一个用来记录错误的数据库(Access)
共有errNumber,ErrDesc,timeoccurred三个字段

