ASP 错误处理
<% Option Explicit'-------------
'錯誤處理:
'-------------
'1.需在每一行可能發(fā)生錯誤的代碼上使用"On Error" 和 "If Err.Number <> 0 Then ..." 結(jié)構(gòu)。 注意作用域!
'2.On Error語句: 啟用或禁用錯誤處理程序
' * On Error GoTo 0: 禁用錯誤處理。
' * On Error Resume Next:開啟錯誤處理。
' 若未使用On Error Resume Next語句,所發(fā)生的運(yùn)行時錯誤將顯示錯誤信息,同時,代碼的執(zhí)行也隨之終止。
' 但當(dāng)你采用它時,就會使程序不顧運(yùn)行時錯誤,跳過產(chǎn)生錯誤的語句繼續(xù)執(zhí)行。之后可以在過程內(nèi)部建立錯誤處理例程。
' 若調(diào)用其他過程時,On Error Resume Next語句變?yōu)榉腔顒拥?#xff0c;應(yīng)在每個調(diào)用的例程中執(zhí)行On Error Resume Next 語句。sub Err1()dim iOn Error Resume Nexti=99/0If Err.number<>0 thenresponse.Write ("出錯了")response.End() '如果不寫的話,會繼續(xù)執(zhí)行下面程序。End ifresponse.Write ("錯誤已跳過")
end subsub Err2()On Error Resume Nextresponse.Write (var1)response.Write (111)On Error GoTo 0response.Write (var2)response.Write (222)
end subsub Err3() '//用err.raise自定義錯誤信息On Error Resume NextDim ConnSet Conn = Server.CreateObject("ADODB.Connection")'這個DSN實際上不存在,所以返回錯誤信息Conn.Open "foo"If Err.Number <> 0 thenErr.Clear'Err.Raise可以憑空產(chǎn)生錯誤Err.Raise vbObjectError + 7, "ErrTest.asp", "Connection Open Method Failed"response.Write ("已使用Err.Raise"&"</br>")End IfIf err.Number <> 0 then Response.Write("Error On line -> " & Err.Number - vbObjectError)Response.write("<BR>Error Source -> " & Err.Source)Response.Write("<BR>Error Desc -> " & Err.Description)Err.ClearEnd If
end sub'call Err1()
'//運(yùn)行結(jié)果: 出錯了'call Err2()
'//運(yùn)行結(jié)果:
'111
'Microsoft VBScript 運(yùn)行時錯誤 錯誤 '800a01f4' 變量未定義: 'var2'call Err3()
'//運(yùn)行結(jié)果:
'已使用Err.Raise
'Error On line -> 7
'Error Source -> ErrTest.asp
'Error Desc -> Connection Open Method Failed%>
?
轉(zhuǎn)載于:https://www.cnblogs.com/streetpasser/archive/2013/03/22/2975126.html
總結(jié)
- 上一篇: 孕妇梦到骑驴什么意思
- 下一篇: Mybatis各种模糊查询及#和$区别