Asp-Classic
在經典 ASP 中使用“on error resume next”,以及如何處理錯誤
大家好,我想問一個關於
on error resume next假設我們有一個循環來瀏覽記錄集,例如:
Do while not rs.EOF query = "UPDATE ...." conn.execute(query) rs.movenext loop我想確保
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問題是:在循環期間,如果遇到錯誤,下一個循環是否會出現錯誤(並因此再次觸發錯誤塊)?還是
on error goto 0會清除 Err 對象?換句話說,它會起到錯誤處理的作用嗎?
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)還有顯式的
err.clear().
要使用的正確程式碼是
Err.Clear我已經用以下程式碼對其進行了測試
<%on error resume next response.write (p(10)) Response.write(Err.Number) response.write("<br>") response.write(Err.description) response.write("<br>") Err.Clear Response.write(Err.Number) response.write("<br>") response.write(Err.description) response.write("<br>") %>您可以在下面看到正確的響應,這表明錯誤正在清除
*13
類型不匹配
0*