ASP 中健壮的页结构的异常处理

2016-01-29 18:43 10 1 收藏

ASP 中健壮的页结构的异常处理,ASP 中健壮的页结构的异常处理

【 tulaoshi.com - ASP 】

 

错误处理是让程序员牢骚满腹的东西之一。让我们来面对它,我们不写错误的代码就是了。。。或者类似的想法。不幸的是,代码中的运行时错误可能有许多的原因,从硬件、软件的改变到使用了别的开发团队的代码等等。有效的处理这些错误并使得它对于网站正常操作过程的中断最小化是每个有良知的程序员的责任。

 
在本文讨论的范围内,有三个不同的地方可以发生错误:脚本,中间件,以及IT内部架构。IT内部架构的错误,比方周期性的性能降低并导致IIS进行(Inetinfo.exe)崩溃几乎是无法避免的。这种类型的错误通常只能打电话要求技术支持并且会让系统管理员忙上很久。开发者不能为阻止这类错误做些什么,但是我们通常能够应付和改正脚本和中间件中的错误。在安装了IIS以后,缺省的服务器端脚本语言被设置成VBScript。许多Web 开发团队在他们的开发环境中保持了这些缺省设置,这是不幸的,因为VBScript对于处理运行时错误的支持非常的差。在VBScript中,开发者可以使用的唯一一个错误处理结构是

On Error Resume Next (打开错误处理功能)和On Error GoTo 0 (关闭错误处理功能).

为了在你的ASP 页面里有效的使用这个错误处理结构,你可能需要用这些结构包括可能抛出异常的代码,就象下面这样:

 

  <%

  Dim myVar

  On Error Resume Next

 '下面一行代码会在MSXML 4.0没有被安装或者已经损坏的情况下产生错误

  Set myVar = Server.CreateObject("MSXML2.DOMDocument.4.0")

  If Err.Number < 0 Then

  ' 在这里处理错误

 ' 结束错误处理,避免以后发生的错误无法被发现

 
  On Error GoTo 0

  Else

  ' myVar现在指向 MSXML 4.0 DOMDocument的一个实例

  ' 结束错误处理,避免以后发生的错误无法被发现

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/asp/)

  On Error GoTo 0

   End If

 

就象你看到的一样,如果你要在每一行现有的可能发生错误的代码上使用上面的规则,你的程序马上就会充满 "On Error" 和 "If Err.Number < 0 Then . . ." 这样的结构。

而另一方面JScript对于健壮的错误处理机制“结构化异常处理(SEH)”有内建的支持。使用SEH能够让你的软件开发团队顺利的转移到.NET 环境上来,因为SEH是JScript.NET, VB.NET, 和 C#缺省的错误处理机制。(注意:.NET不支持VBScript。)下面的例子代码执行与VBScript代码相同的操作,但是使用JScript语言并用SEH来处理异常

 <%@ LANGUAGE="JScript" %

 <%

  varmyVar;

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/asp/)

try {

 myVar = Server.CreateObject("MSXML2.DOMDocument.4.0");

  // 如果上面发生了错误,那么catch

// 代码块就会立刻被执行

 // 并在myVar上进行必要的操作。

 }

 catch (e) {

  // 在这里处理异常,异常本身可以用

  // 'e' 变量进行引用。

  }

 finally {

 // 在这里进行所有收尾工作

 // 这段代码不管错误有没有发生

  // (也就是“catch”块有没有运行)

  // 都会执行。

  }

 %

通过在服务器端使用JScript,你就得到了SEH带来的好处,以及对复杂ASP对象,比方Server,Request和Response对象的完全使用。要把这种脚本语言设置成你的ASP页面的缺省语言,你只需要简单的在你的ASP页面上添加@LANGUAGE指令,就象上面的例子那样。

 

 

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

延伸阅读
在java多线程程序中,所有线程都不允许抛出未捕获的checked exception,也就是说各个线程需要自己把自己的checked exception处理掉。这一点是通过java.lang.Runnable.run()方法声明(因为此方法声明上没有throw exception部分)进行了约束。但是线程依然有可能抛出unchecked exception,当此类异常跑抛出时,线程就会终结,而对于主线程和其他线程...
标签: Web开发
在JavaScript可以使用try...catch来进行异常处理。例如:  try    {     foo.bar(); }   catch  (e)   {     alert(e.name  +   " :  "   +  e.message); }   目前我们可能得到的系统异常主要包含以下6种: EvalError...
?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />   企业应用程序在构建时经常对异常处理关注甚少,这会造成对低级异常(如 java.rmi.RemoteException 和 javax.naming.NamingException)的过度依靠。在 EJB 最佳实践的这篇专栏文章中,Brett McLaughlin 解释了为什么对异常处理投入一点关注就会给我们...
你觉得自己是一个Java专家吗?是否肯定自己已经全面掌握了Java的异常处理机制?在下面这段代码中,你能够迅速找出异常处理的六个问题吗? 1 OutputStreamWriter out = ... 2 java.sql.Connection conn = ... 3 try { // ⑸ 4 Statement stat = conn.createStatement(); 5 ResultSet rs = stat.executeQuery( 6 "select uid,...
标签: MySQL mysql数据库
1. Sample Problem: Log Of Failures 问题样例:故障记录 当INSERT失败时,我希望能将其记录在日志文件中我们用来展示出错处理的问题样例是很普通的。我希望得到错误的记录。当INSERT失败时,我想在另一个文件中记下这些错误的信息,例如出错时间,出错原因等。我对插入特别感兴趣的原因是它将违反外键关联的约束 2. Sample Problem: Log Of ...

经验教程

571

收藏

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