Office中国论坛/Access中国论坛

标题: [ZT] On Error Resume Next和On Error GoTo 0区别 [打印本页]

作者: slowgrace    时间: 2009-1-4 08:17
标题: [ZT] On Error Resume Next和On Error GoTo 0区别
来自:http://blog.vwen.com/read.php?10&guid=4

有写过asp代码的人都知道,很多程序都喜欢在数据库连接的地方加入一行On Error Resume Next,这样当连接数据库出错的时候,可以很友好的提示一段特殊的字符来提醒访客。

On Error Resume Next在asp中的作用是如果发生错误就继续执行出错语句下面的那句。按正常的话,如果程序一出错,asp就或会报告错误代码和错误行数等并停止运行。错误并不严重,不会产生严重影响,你可以在可能出错的语句前面加上这句。但是如果错误很严重,会影响到后面的语句执行,就建议不要使用这段语句了。

对于初学程序的朋友,建议先去掉或注释掉这句代码再开发程序,等程序全部开发完成的时候再加上上去,这样可以防止恶意攻击网站的人看不到错误信息,也可以起到一定的保护作用。否则带着这语句开发,可能出现很多bug,这些都是对程序不负责的人所做的。

On Error GoTo 0 表示禁止当前过程中任何已启动的错误处理程序。使用这条语句会让系统不再沉默,一旦有错误发生就会提示错误,并结束脚本执行。假如你前面使用了On Error Resume Next容错代码,在当前不想他继续容错,你可以加上On Error GoTo 0,这样On Error GoTo 0之前的语句错误都将直接报错


举个简单例子

<%
on error resume next
dim i
i = 1/0
Response.Write "输出第一个内容"
on error goto 0
i = 1/0
Response.Write "输出第二个内容"
%>


这个例子的输出结果:
输出第一个内容
Microsoft VBScript 运行时错误 错误 '800a000b'

被零除

/d/index.asp,行 7

作者: boy1    时间: 2009-1-14 11:21
标题: 学习
学习[:32]
作者: chenyingfengsx    时间: 2009-7-9 15:33
xuexi




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3