在经典ASP中使用"on error resume next",以及如何处理错误

Mat*_*yr' 10 error-handling vbscript asp-classic

美好的一天,我想问一个事情 on error resume next

让我们假设我们有一个循环来浏览记录集,如:

Do while not rs.EOF
query = "UPDATE ...."    
conn.execute(query)    
rs.movenext
loop
Run Code Online (Sandbox Code Playgroud)

我想确定它UPDATE是好的,我想检查是否有一些问题,所以我在代码中添加了调试功能,如:

Do while not rs.EOF
query = "UPDATE ...."

on error resume next

conn.execute(query) 

If Err.Number <> 0 Then
   Response.write(Err.Number)
   response.write("<br>")
   response.write(Err.description)
   response.write("<br>")
   response.write(query)
   response.write("<br><br>")
end if

on error goto 0

rs.movenext
loop
Run Code Online (Sandbox Code Playgroud)

问题是:在循环期间,如果遇到错误,下一个循环将出现错误(因此再次触发错误块)?或者on error goto 0会清除Err对象?换句话说,它会作为错误处理吗?

Ale*_* K. 8

VBScript重置错误goto 0:

on error resume next
i = 1 / 0
WScript.echo( err.number ) '' prints 11 (div by 0)
on error goto 0
WScript.echo( err.number ) '' prints 0 (no error)
Run Code Online (Sandbox Code Playgroud)

还有明确的err.clear().