以国内最流行ASP为例,我不知道有多少人会在写代码时想到“容错”这个概念,实际上当我遇到这种事时,也是不了了之。为什么呢,想想最初的意思是认为写如下代码就能容错了,见示例1-1。 <%@ Language=VBScript %> <%option explicit%> <% '出错过滤 on error resume next ……………(代码略) %> 示例1-1 常见代码一瞥
以上代码就经常出现在各位同仁的手中,不用说出个中原因,我完成能理解各位现在的心情,我可以向大家坦白地说,我写了二年的ASP网页,大多数都是这种方式,不断的写,不断的改,心力交瘁,现在都不愿回头改写自已的代码了。实际上最基本的容错机制的想法,就是不要相信程序能为你节省多少事,要把控制权掌握在自已的手中,这是必要的。 <%@ Language=VBScript %> <%Option Explicit%> <% '======================================== DIM NDEBUG_MSG NDEBUG_MSG=TRUE IF NDEBUG_MSG = TRUE THEN '出错过滤 ON ERROR RESUME NEXT END IF '===============END ===================== ……………(代码略) '数据事务处理-start If Err.number = 0 Then '~~~~~ Open database and begin transaction ~~~~~~~~~~~~~~~~~~~~ '------------------------------ '------------------------------------- objConn.BeginTrans objConn.Execute (objSQL) '~~~~~~ Commit the transaction and close the database connection objConn.CommitTrans Response.CacheControl ="Private" Response.Expires = -1 ……………(代码略) Else '~~~~~ Rollback transactions and close objects objConn.RollbackTrans '~~~~~ Raise errors for asp page 'Err.Raise Err.Number, Err.Source, Err.Description 'Err.Clear Response.Write "Description= ("& err.number &"),("& err.Description &")" End If '==============END FILES===================== %>