当前位置: 首页 > 图文教程 > 网络编程 > ASP > 处理Asp中的错误

ASP
一种比较方便的ASP分页程序
用一套论坛程序架设多个论坛
ASP与ASP.NET在COOKIE方面的区别
较长数据无法在Asp页面中取出的三种解决方法
初试WAP之wml+ASP查询
动态网站首页的静态生成方法
使用正则表达式实现模式图片新闻.ASP
让你的WAP网站有更好的兼容性
WAP版的手机号码所在地查询
asp模仿 Lotus Notes 的界面程序
ORACLE920与ASP的连接问题的解决办法
利用SQLSERVER存储过程实现ASP用户身份验证
在ASP中自动创建多级文件夹的函数(使用FSO)
利用instr()函数防止SQL注入攻击
利用XSL和ASP实现XML文档在线编辑
表单对象textarea内容的格式控制(回车、换行、空格)
针对select写了一个通用的option输出函数
ASP无组件BMP汉字生成类+汉字点阵库
时间、空间性能极优的asp无组件上传类
无组件生成BMP验证码

ASP 中的 处理Asp中的错误


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 111 ::
收藏到网摘: n/a

       处理Asp中的错误
  
  You just finished your ASP application in time, barely making the dealine! As you upload the final version to the webserver, you receive an email from your supervisor indicating that he''s ready for your demo. You confidently stride into his office and give him instructions on accesses the application through the Intranet.
  
  Your boss comes to the first page, and is asked to enter his name. You''ve created a slick, customized feel to the site, recording the user and his or her preferences in a database. Your boss types in his name, "The Pointy Haired Boss," and hits the submit button. Instead of being taken to the next page, he sees the following text pop up on the screen:
  
  Microsoft OLE DB Provider for ODBC Drivers error '' 80004005'' [Microsoft][ODBC Access 97 ODBC driver Driver] syntax wrong near ''
  
  Please note that I just made this error message up, so, please, no emails asking about how one gets this error by entering his name!
  
  You get one of those looks from your boss, a look that says, "I hope you weren''t expecting a positive performance review."
  
  There''s nothing worse to an end user than to see those dreaded ADO errors. They are misformatted, cryptic, and leave the user wondering what they are suppose to do. Your average end user doesn''t know ODBC from OLE. So how can you prevent these nasty error messages?
  
  First you must insert at the top of your ASP page:
  
  
  <% On Error Resume Next %>
  This will tell ASP to just skip over any errors, instead of halting execution and printing out a nasty error message. You may be tempted to leave it at this, although if you do, and errors occur, your users won''t be aware of them. They will think their information was correctly saved, when in actuality it wasn''t due to an ADO error.
  
  What, then, do we want to do if there is an error? Well, the idea situation would be to let the end user know that an error had occurred and will be worked on, and automatically email technical support with the ADO error messages. So that is what we will do!
  
  The question now is how to we "trap" errors? Well, after any ADO call that accesses the database, we will want to put the following lines:
  
  
  
  If Err.number <> 0 then
   TrapError Err.description
  End If
  
  You will want to put this after all ADO calls that communicate directly with the database. This includes ConnectionObject.Open, ConnectionObject.Execute, and RecordsetObject.Open. Now, you may be wondering where the sub TrapError is defined: we''re about to do that. Create a file called ErrorHandler.asp and put it in your /include or /scripts directory. In ErrorHandler.asp, we will have the following subs:
  
  
  TrapError
  ProcessErrors
  Let''s look at the code for ErrorHandler.asp:
  
  
  
  <%
  Dim strErrorMessage
  Dim bolErrors
  
  ''Initialize variables
  strErrorMessage = "" ''The error messages for tech. support
  bolErrors = False ''Have we found any errors yet?
  
  ''Now our two subs
  sub TrapError(strError)
   bolErrors = True ''Egad, we''ve found an error!
  
   strErrorMessage = strErrorMessage & strError & ", "
  end sub
  
  
  
  ''If there are any errors, this function will email tech. support
  sub ProcessErrors()
   if bo