本刊择优刊登计算机技术、网络与通信技术、信息化建设、信息管理、工程评估、项目咨询与管理、电子商务等方面的论文
  当前位置:网络技术应用  

ASP中实现全面容错的途径

           2007-4-13     刘凤玲
          

(抚顺职业技术学院,辽宁 抚顺 113006)

  摘要:一个好的错误处理将使得开发时间缩短并简单化代码编写,一个好的错误处理策略是区别高级的专业开发与业余爱好者的因素之一。本文将从预防错误、处理错误和捕获错误三个方面阐述ASP中实现全面容错的途径。通过实例介绍错误处理的方法。


  关键词:ASP;容错的途径;错误处理

 
  一种编程语言或软件开发工具的一个最重要的功能是能够提供正确处理错误的机制。
  在用ASP开发系统时,开发者常常产生如下认识上的误区:将任务交给一个程序员时,委托者认为任务中隐含着编写错误处理代码的工作;由于认识上的误区常常使系统的容错能力减弱。本文将从预防错误、处理错误和捕获错误三个方面阐述ASP中实现全面容错的途径。最后通过实例介绍错误处理的方法。

  1 实现全面容错的途径
  1.1 尽早处理错误
  出现错误后允许用户进行的每一步操作,对用户而言都是在浪费时间和精力。例如,当程序事实上已经不可能接收输入的信息了,如果程序给用户的是一个能够正常接收键盘输入信息的假象,用户将认为一切正常并继续输入。然后程序告知用户要以前有一个错误,从那时开始是在浪费时间。无疑,用户是很难心平气和地面对这一现实。
  尽早处理错误的要诀是在编码过程中遵循下列规则:
  * 预防所有可以预防和防止的错误。
  * 处理所有可以预料但不能防止的错误。
  * 捕获所有不能预料的错误。
  (1)预防错误。预防错误是容错代码中的重要环节。尽可能地预防错误,可以避免许多用于错误处理和捕获的工作,使容错代码迅速‘‘瘦身’’。此外,“防患于未然“,是用户最乐意接受的形式。
  (2)处理错误。就代码规模而言,处理错误的代码是容错代码中的主要组成部分。
  需要指出的是,处理错误意味着,当错误发生后,容错代码将智能性地按照某种逻辑对错误进行纠正,而不是简单地将控制引向错误发生前的位置。
  (3)捕获错误。捕获错误是容错代码中的常见形式。不可预料的错误可能引起系统崩溃,或造成某种灾难性的后果。而捕获错误是避免出现上述后果的唯一手段。因为错误捕获的对象是不可预料的错误,所以错误捕获代码不能对错误进行纠正,而只能恢复到某种状态。
  在实践中,错误捕获常常被过分强调和滥用。事实上,对用户而言,捕获到错误的信息通常会让他们产生挫折感。这里,笔者并不是贬低错误捕获的必要性和重要性,捕获错误是处理不可预料错误的唯一途径。但是,如果用捕获错误的方法来处理可以防止或处理的错误,就是滥用错误捕获。随着错误预防和错误处理机制的完善,捕获错误的工作量将减少(从理论上讲,不存在不可预料的错误,只存在由于学识方面的原因而不能预料的错误)。
  1.2 随时编写错误处理代码
  推迟处理错误往往会引发许多严重的后果。为程序“打补丁”时,程序员可能已经忘记了错误发生的原因和处理方法等方面的细节。更坏的情况是,当一个程序员为另一个程序员编写的程序“打补丁”时,还可能引入更多的错误。当用户由于程序错误而请求支持时,会怀疑程序的健壮性,这无疑会影响开发者的形象和进一步合作的前景。因此,在编写每一行功能性代码时,必须考虑是否需要容错以及如何容错。

  2 处理错误
  通过设置可以改变IIS采用的默认处理错误代码程序,但这也只能是提供更加友好、更容易理解的提示信息而已,并没有改变程序导致错误的事实。
  一般为了增强程序的容错能力,应自行编写代码检查错误,然后根据具体情况进行适当的处理。欲在ASP程序中加入处理错误代码,需要使用On Error语句。On Error的作用是开启错误陷阱,开启错误陷阱后,即可在可能出错的代码后加入错误处理代码段,以实现容错。下面以一个例子来说明。
  <SCRIPT LANGUAGE=VBScript RUNAT=Server>
  Option Explicit
  On Error ReSume Next
  此处用于定义变量,调用函数。
  Function Ssyyrr(X,Y)
  On error resume next
  Dim z
  Z=x/y
  Select Case Err.Number
   Case 0
   Ssyyrr=Z
   Exit Function
   Case Else
   Response.Write “错误代码:”&Err.Number&”<br>”
   Response.Write ”错误描述:”&Err.Description&”<br>”
   Response.Write”错误对象或应用程序名称:”&Err.Source
   Response.End
  End Select
  End Function
  </SCRIPT t>
  本例中用到了Err对象及其Number、Description、Source属性,借肋这些属性可获得与所发生错误有关的各种信息,进而可利用这些信息对错误进行处理。由本例可见利用Err对象各种属性获取错误信息是十分方便的。

  3 总结
  脆弱的容错能力是导致程序崩溃的根本原因。因此我们在开发系统时,掌握容错环节的设计原则、设计方法,使系统能预见、预防和处理各种错误,可有效地提高工作效率和系统的功能。

参考文献
[1]张景峰,苏英如,等.ASP程序设计教程.北京.中国水利水电出版社[M],2005.6.
[2]冯昊.ASP动态网页设计与上机指导.北京.清华大出版社[M],2002.12.
[3]铁军.网点设计技术.北京.国央广播电视大学出版社[M],2004.3.
——————————
作者简介:刘凤玲(1961.5),女,辽宁抚顺人,抚顺职业技术学院副教授。



 

[1] [2] [下一页]

 
中国刊例网
中国学术期刊光盘版
       

版权所有《网络与信息》杂志社 建议用 800*600分辨率 浏览
COPYRIGHT© 2002-2005 www.51de.com

辽ICP备05005462号