您的位置:首页 > 其它

On Error Resume Next使用的了解

2015-01-12 16:34 423 查看
先声明关于这个命令的理解都是出于自己程序使用后有感而发,如果有错误情况欢迎指正。

我们都知道java、c#等语言的纠错机制是通过try...catch...来处理遇到错误情况的处理机制,其实ASP也有类似的错误处理机制,只是我们一般很少使用,就我自身而言我觉得没必要使用,因为我们自己写asp都不会去写大型项目,小项目还来使用这个的话,如果不能熟练使用,那我们等到了出错的时候就会很纠结,因为不知道是出现在哪个地方,仅仅是因为我们开启了这句命令,浏览器就不会告诉你出错是在哪里了,因此我平常都不会去使用。

居于这一次我写的asp采集程序,是要把我们采集到的数据通过程序导入到服务器库上,但是有时候网络卡顿超时等状况一出现我的程序就中断了,于是我每次都得手动按F5来刷新页面,这个是我感到烦恼的地方,于是我想到了要让程序自动判断过滤一些情况然后自动刷新页面,可是居于我的程序并不是出错的,是在超时这种情况要怎么处理呢?

于是我咨询了我的前辈,他说能用下面的函数来过滤实现,但是就是我必须每次开asp的时候都得去判断一下这个sql语句,因为每次open数据库都是有可能出现不可预料的情况的,刚开始说实在的我是不相信的,为什么呢?因为浏览器告诉我的都是导入程序的execute命令出错,我在想那些select命令怎么可能出问题呢?我只是单纯的检索出字段而已,于是前辈有给我测试了下这个函数的处理情况,超时判断,其实都能过滤掉然后刷新页面,可是为什么我给所有有execute的执行语句的地方都加了判断为什么还是不行呢??连函数里头的if都没执行到呢?为了印证所有的sql都必须判断,我就全部给所有的sql加上了这个判断,结果浏览器打印出出错的地方还真的是某个select语句,然后程序就能不间断自己刷新导入,虽然到现在我还是想不明白为什么?

这里我把这个函数贴出来下,如果你看到这个文章,能给你点启发那是在好不过啦~~不过我还是真的很排斥使用这个命令的,不知道你呢?

Sub TestError(TestErrorStr)

zNowUrl ="Index.asp?" & request.ServerVariables("QUERY_STRING")

If Err.Number <> 0 and cdbl(Err.Number)<>-2147024891 then ' GOOGLE ERROR = -2147024891 SQL的语句出错是 -2147217900 'Err.Number : -2147467259

response.write "Err.Number : " & Err.Number

response.write "<br />=================================================================================================<br />"

response.write "<BR>出错串: " & TestErrorStr

response.write "<BR>发现错误 10 秒以后重新刷新 " & now()

response.write "<BR>正在跳转: " & zNowUrl

response.Write "<script language=javascript>"

response.write "setTimeout(""window.location.href='"& zNowUrl & "';"", 10000);"

response.Write "</script>"

response.end

End if

End Sub
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: