配色: 字号:
On Error Resume Next使用的了解.doc
2020-04-28 | 阅:  转:  |  分享 
  
OnErrorResumeNext使用的了解

原创草灯最后发布于2015-01-1216:34:46阅读数1614收藏

展开

???先声明关于这个命令的理解都是出于自己程序使用后有感而发,如果有错误情况欢迎指正。

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

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

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

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





SubTestError(TestErrorStr)

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

????IfErr.Number<>0andcdbl(Err.Number)<>-2147024891then????''GOOGLEERROR=-2147024891???SQL的语句出错是-2147217900''Err.Number:-2147467259

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

??????????response.write"
=================================================================================================
"

?????????response.write"
出错串:"&TestErrorStr

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

?????????response.write"
正在跳转:"&zNowUrl

??????????response.Write""

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

??????????response.Write""

?????????response.end

????Endif???

EndSub

————————————————

版权声明:本文为CSDN博主「草灯」的原创文章,遵循CC4.0BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/eadio/article/details/42644257

献花(0)
+1
(本文系AiChemi首藏)