帝国软件
  设为首页 加入收藏 关于我们
 
解密帝国网站管理系统
栏 目:
 
您的位置:首页 > 技术文档 > ASP编程
ASP中的错误代码技巧
作者: 发布时间:2005-03-12 来源:
When error coding in ASP it’s not as rich an environment as other environments.    I really only reports
that there was an error with some Numbers and Descriptions.   There is only a few way's I've found to
report these errors back to the end user.   I've seen numerous ways of doing it but found this way the
most graceful.     Remember you have to explicitly check after everything that might cause an error.  The
main ones I've experiences are database openings and recordset openings & updates.  Here is the sample
code I use to check for errors and then redirect them to the error page and record the error into a
database..   Note that all my error checking is done before the <html> header is written so if there is an
error it can redirect the page without getting an error of Heading already written to the client.  If the
html header has been sent to the client you can't do a response.redirect command.

Page 1 A sample Active Server Page form you would use to submit data

<html>

<head>
<title>Enter some data into the field</title>
</head>

<body>

<p>Enter some data into the field.&nbsp; This form is nothing more than representing a
form you would use in real life to submit some data to an ASP page.&nbsp;&nbsp; Note this
isn't going to enter the data into database but it will record the error on an Error page
and then the some information about the Error.&nbsp; &nbsp; </p>

<form method="POST" action="error2.asp" name="form1">
<div align="left"><table border="1" width="340" height="35">
<tr>
<td width="143" height="11">Favorite Computer</td>
<td width="185" height="11"><input type="text" name="T1" size="20"></td>
</tr>
<tr>
<td width="143" height="12">Favorite Game: </td>
<td width="185" height="12"><input type="text" name="T2" size="20"></td>
</tr>
</table>
</div><p>:<input type="submit" value="Submit" name="B1"><input type="reset" value="Reset"
name="B2"></p>
</form>
</body>
</html>

Page 2 the form that is being submitted to and also generates the error that
redirects it to the Standard Error Page (Which is Page 3 in this example)

<%@ Language="vbscript"%>
<%
'Hold the page in memory until response.flush command is issued or the </html> tag is processed.
Response.buffer = True

'This forces the page to continue to process even though there was an error.
On Error Resume Next

'Declare all variables
dim conn
dim rs
set conn = server.createobject("adodb.connection")
conn.open "Example_DSN"

'Standard Error coding if the database won't open an error number will return something else but zero
'I then capture the error number and description and is passed using the querystring method
'Note the description is using the Server.URLEncode function ('This will fill any spaces in the
description with
'the correct HTML code
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
'Explicitly checks to see if there is a problem opening the table
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

'Explicitly checks to see if there is a problem updating the record
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
%>
<html>
<head>
<title>Records been added</title>
</head>

<body>

<p>Your record has been added to the database!</p>
</body>
</html>

Standard Error coding page I use in most all my apps!  You also could easily create some kind of database
connection and report the errors your getting!

<%@ language="vbscript"%>
<%
'buffers the page on the server
Response.Buffer = True

'Declare variables
dim strNumber
dim strdesc
dim conn
dim rs

'sets a local variable to the connection string
strconn = "DRIVER=Microsoft Access Driver (*.mdb);DBQ=" & Server.MapPath("error.mdb")

'Place values that are in the URL into local variables
strNumber = request("Number")
strDesc = request("Desc")

'Opens the connection string and recordset object to record the error in a database
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

'Puts the generated ID into a local variable
strID = rs("id")
rs.close
set rs = nothing
conn.close
set conn = nothing

'Clear errors collections
err.clear

%> </p>

<html>
<head>
<title>Error page</title>
</head>
<body>

<h1>An Error has occurred</h1>
'Writes out the generated Number that is received from the database
'Idea you also could format an email message with this id to report the error to someone
<h2>Error ID is:<% = strID %></h2>

<h3>The Error Number is:</h3>
<i><% = strNumber %>
</i>

<h3>The Error Description is:</h3>
<i><% = strDesc %>
</i>

<h3>Please report this error to the webmaster</h3>
<b><a href="mailto:webmaster@someurl.com">

<p>Click here to send an email please report the Error Number and Description</a></b> </p>
</body>
</html>
  
评论】【加入收藏夹】【 】【打印】【关闭
※ 相关链接
 ·在ASP中使用Ad Rotator广告组件  (2005-03-12)
 ·ASP中文本文件与数据库文件的数据  (2005-03-12)
 ·在ASP中判断SQL语句是否执行成功  (2005-03-12)
 ·如何在ASP中通过ODBC调用Excel中  (2005-03-12)
 ·ASP中文本文件与数据库文件的数据  (2005-03-12)
 ·在ASP中使用类  (2005-03-12)
 ·在你的ASP中使用类(class)   (2005-03-12)
 ·通过几个非常实用的例子了解asp中  (2005-03-12)
 ·asp中的一个奇怪的函数  (2005-03-12)
 ·在ASP中使用Java类(Using Java C  (2005-03-12)

   栏目导行
  PHP编程
  ASP编程
  ASP.NET编程
  JAVA编程
   站点最新
·致合作伙伴的欢迎信
·媒体报道
·帝国软件合作伙伴计划协议
·DiscuzX2.5会员整合通行证发布
·帝国CMS 7.0版本功能建议收集
·帝国网站管理系统2012年授权购买说
·PHPWind8.7会员整合通行证发布
·[官方插件]帝国CMS-访问统计插件
·[官方插件]帝国CMS-sitemap插件
·[官方插件]帝国CMS内容页评论AJAX分
   类别最新
·在ASP中使用数据库
·使用ASP脚本技术
·通过启动脚本来感受ASP的力量
·学习使用ASP对象和组件
·解析asp的脚本语言
·初看ASP-针对初学者
·ASP开发10条经验总结
·ASP之对象总结
·ASP与数据库应用(给初学者)
·关于学习ASP和编程的28个观点
 
关于帝国 | 广告服务 | 联系我们 | 程序开发 | 网站地图 | 留言板 帝国网站管理系统