正确处理ASP动态网页中的容错机制

以国内最流行ASP为例,我不知道有多少人会在写代码时想到“容错”这个概念,实际上当我遇到这种事时,也是不了了之。为什么呢,想想最初的意思是认为写如下代码就能容错了,见示例1-1。

1@ Language=VBScript 
1option explicit
1   
2'出错过滤   
3on error resume next   
4……………(代码略)   

示例1-1 常见代码一瞥

以上代码就经常出现在各位同仁的手中,不用说出个中原因,我完成能理解各位现在的心情,我可以向大家坦白地说,我写了二年的ASP网页,大多数都是这种方式,不断的写,不断的改,心力交瘁,现在都不愿回头改写自已的代码了。实际上最基本的容错机制的想法,就是不要相信程序能为你节省多少事,要把控制权掌握在自已的手中,这是必要的。

1@ Language=VBScript 
1Option Explicit
 1   
 2'========================================   
 3DIM NDEBUG_MSG   
 4NDEBUG_MSG=TRUE   
 5IF NDEBUG_MSG = TRUE THEN   
 6'出错过滤   
 7ON ERROR RESUME NEXT   
 8END IF   
 9'===============END =====================   
10……………(代码略)   
11'数据事务处理-start   
12If Err.number = 0 Then   
13'~~~~~ Open database and begin transaction ~~~~~~~~~~~~~~~~~~~~   
14'------------------------------   
15'-------------------------------------   
16objConn.BeginTrans   
17objConn.Execute (objSQL)   
18'~~~~~~ Commit the transaction and close the database connection   
19objConn.CommitTrans   
20Response.CacheControl ="Private"   
21Response.Expires = -1   
22……………(代码略)   
23Else   
24'~~~~~ Rollback transactions and close objects   
25objConn.RollbackTrans   
26'~~~~~ Raise errors for asp page   
27'Err.Raise Err.Number, Err.Source, Err.Description   
28'Err.Clear   
29Response.Write "Description= ("& err.number &"),("& err.Description &")"   
30End If   
31'==============END FILES=====================   

示例1-2 完整的容错机制代码范例

看了以上代码,你会发现也没有什么高超技艺在里面,高手可能更是不屑一顾。但大家未必能在写代码时这样作。

【1-1】编写动态网页时,一定要考虑容错机制,如在ASP中,就应该参考示例1-2,写出健壮的代码。

Published At
Categories with Web编程
Tagged with
comments powered by Disqus