ASP错误处理

2016-01-29 19:44 5 1 收藏

ASP错误处理,ASP错误处理

【 tulaoshi.com - ASP 】

       ASP是非常简单的,以至于许多的开发者不会去思考错误处理。错误处理能够让你的应用程序更加合理。我看到过很多个用ASP编写的商业网站,大多数都忽略了错误处理。
  错误的类型
  有三种主要的错误类型:
  编译错误:
  这种错误出现一般都是代码的语法问题。因为编译错误而导致辞ASP停止运行。
  运行错误
  这个错误是发生在你准备运行ASP时的。例如:如果你试图给一个变量赋值,但是却超出了该变量允许的范围。
  逻辑错误
  逻辑错误是最难被发现的,这种错误经常是一种结构错误,电脑是发现不了的。这就需要我们彻头彻尾地检查我们的代码。
  因为编译错误一般是和逻辑错误一起发生的,一般都能显示出来,所以我们担心的就只是运行错误。它都终止ASP的运行,而且给用户丢下一堆很不友好的文字。
  那么我们要怎样处理运行错误呢!?我们先来看看,ASP唯一提供给我们的错误命令---On Error Resume Next(这里提醒一下初学者,在ASP中只有On Error Resume Next语句,没有On Error Resume Goto语句)
  如果你不使用On Error Resume Next语句的话,一切运行错误都会发生,这个是致命的,那么就会有一段错误代码“展现”给用户,而且ASP程序也会停止。
  
  下面就是一个错误代码:
  
  
   CODE:
  Microsoft OLE DB Provider for ODBC Drivers error 80004005
  [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
  /test.asp, line 60
  
  
  
  当我们在程序最上面使用On Error Resume Next语句时,所有的错误都会被忽略,程序会自动执行下一条语句。这样程序就会完全执行,出错后用户也不会看到出错信息。但是这样也有不好的地方,那就是如果程序没有按照你想像的执行的话,你就很难找到到底是哪里出了问题,所以你就得在必要的地方对错误进行处理。
  处理错误
  在ASP中,处理错误的最好的办法就是在程序最底端放上代码来处理错误。我也推荐在每个ASP程序都使用缓冲区。这样的话,如果错误发生,页面就会停止,页面内容也会被清除,这样用户就不会看到错误信息,对你们的抱怨也就少了!下面是一个例子:
  
  
   CODE:
   <%@ LANGUAGE="VBScript" %>
  <% '设置buffer为True
   Response.Buffer = True
   '开始错误处理
   On Error Resume Next
   %>
   <% '错误处理
   If Err.Number <> 0 Then
   '清除页面
   Response.Clear
   '显示错误信息给用户
   %>
   <HTML>
   <HEAD>
   <TITLE></TITLE>
   </HEAD>
   <BODY BGCOLOR="#C0C0C0">
   <FONT FACE="ARIAL">An error occurred in the execution of this ASP page<BR>
   Please report the following information to the support desk<P>
   <B>Page Error Object</B><BR>
   错误 Number: <%= Err.Number %><BR>
   错误信息: <%= Err.Description %><BR>
   出错文件: <%= Err.Source %><BR>
   出错行: <%= Err.Line %><BR>
   </FONT>
   </BODY>
   </HTML>
  
  <%End If%>
  
  
  
  你们上面看到了,我首先设置On Error Resume Next ,这样出现错误就不会影响程序的执行。
  
  错误处理和数据库
  在错误处理中加入数据库的执行是很复杂的。假若我们有一个程序,有很多的命令去向数据库中添加记录,如果insert/update在程序的最底部执行,如果我们前面又错误发生,那就完了!我们就会向数据库中添加了一个错误的信息。因为我们用了On Error Resume Next 一切的错误都被忽略了!即使前面出错,程序依旧会向数据库中添加数据的。
  为避免这种情况,我们就先得做些手脚,正确处理的方法如下:
  
  
   CODE:
   If Err.Number

来源:http://www.tulaoshi.com/n/20160129/1510009.html

延伸阅读
标签: SQLServer
大多数迭代语言编译器都有内置的错误处理程序(例如,TRY…CATCH语句),开发者们在设计代码的时候可以利用它们。虽然SQL Server 2000的开发者不能够像迭代语言的开发者那样利用内置的工具,但是他们可以用系统变量@@ERROR来设计自己有效的错误处理工具。 引入事务 为了能够掌握在SQL Server 2000中错误处理是如何工作的,你必须首先要理...
标签: Web开发
什么是Uploadify Uploadify是JQuery的一个上传插件,支持多文件上传,实现的效果非常不错,带进度显示。 官网提供的是PHP的DEMO,在这里我详细介绍在Asp.net下的使用. 下载 官方下载 官方文档 官方演示   如何使用 1 创建Web项目,命名为JQueryUploadDemo,从官网上下载最...
标签: Java JAVA基础
  错误处理页面error.jsp Web应用程序一般都有一个或多个统一的错误处理JSP页面,以便在功能性的JSP页面发生错误时,能以一种友好的形式向用户反馈。友好而统一的错误页面是Web展现层一个无可忽略的方面。 下面,我们创建错误处理error.jsp文件,其代码如下所示: 代码清单 11 error.jsp错误处理JSP页面 1. <%@pa...
标签: PHP
如果您是 PHP 老手,当然知道当PHP脚本出错时发生了什么事情。此时PHP解析器将在屏幕上给出错误信息,如 Fatal error: Call to undefined function on line 19 --,因此程序在此处终止。这个信息会吓到客户,他可能立即打电话和你进行咨询。 幸运的是,这里有解决办法。PHP拥有内置工具,可以让开发人员捕捉脚本错误然后将它们...
  在 VB6 中,我们使用 On Error 来捕获和处理错误,而且经常使用 On Error Resume Next 来可能产生的忽略错误。 那么 使用错误捕获是否会影响速度呢? 是的,使用错误处理将会降低一些性能,在。Net 中,使用 Try Catch 也将会影响性能,所以我们使用 Reflector 反编译微软的类库时,会发现他的子过程很少使用 Try 来捕获错误,基本都...

经验教程

251

收藏

14
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部