ASP Classic有哪些選項用於錯誤處理?是否可以在ASP Classic中嘗試使用錯誤處理?
例如:
我使用的Mail.SendMail
功能,但在測試服務器上進行切換時它不工作,這是正常的。我想測試郵件是否可能,如果不可以,則繼續和/或顯示消息。
任何想法?
ASP Classic有哪些選項用於錯誤處理?是否可以在ASP Classic中嘗試使用錯誤處理?
例如:
我使用的Mail.SendMail
功能,但在測試服務器上進行切換時它不工作,這是正常的。我想測試郵件是否可能,如果不可以,則繼續和/或顯示消息。
任何想法?
有兩種方法,您可以使用JScript或VBScript進行編碼,這些方法確實具有該構造,或者您可以在代碼中對其進行編譯。
使用JScript中你會用下列類型的構造:通過使用錯誤的簡歷在旁邊點
<script language="jscript" runat="server">
try {
tryStatements}
catch(exception){
catchStatements}
finally {
finallyStatements}
</script>
在你的ASP代碼,你掰過來,你就會有一個嘗試和檢查的Err.Number在像這樣的一個點上:
<%
Dim i
' Turn on error Handling
On Error Resume Next
'Code here that you want to catch errors from
' Error Handler
If Err.Number <> 0 Then
' Error Occurred/Trap it
On Error Goto 0 ' But don't let other errors hide!
' Code to cope with the error here
End If
On Error Goto 0 ' Reset error handling.
%>
某些方案並不總是允許開發人員切換腳本語言。
我的偏好肯定適用於JavaScript(我已經在新項目中使用了它)。但是,維護較舊的項目仍然是必需的和必要的。不幸的是,這些都是用VBScript編寫的。
所以即使這個解決方案沒有提供真正的「try/catch」功能,結果也是一樣的,這對我來說完成工作已經足夠了。
一個相當不錯的方法來處理這個丟失COM類:
Dim o:Set o = Nothing
On Error Resume Next
Set o = CreateObject("foo.bar")
On Error Goto 0
If o Is Nothing Then
Response.Write "Oups, foo.bar isn't installed on this server!"
Else
Response.Write "Foo bar found, yay."
End If
對於海納誰在ASP工作以及更現代的語言,問題就會招來一笑道。根據我的經驗,使用自定義錯誤處理程序(在IIS中設置以處理500; 100錯誤)是ASP錯誤處理的最佳選擇。本文介紹該方法,甚至爲您提供一些示例代碼/數據庫表定義。
聲明上的錯誤繼續下一步應該放在我們要驗證什麼上面。
On Error Resume Next
'Your code logic is here
然後用語句結尾,如:
If Err.Number <> 0 then
'Your error message goes here'
End if
關於Wolfwyrd的前面回答:「在錯誤繼續下一步」其實輪流錯誤處理掉!不開。On Error Goto 0會將錯誤處理重新打開,因爲至少我們希望機器能夠抓住它,如果我們沒有寫入自己的話。關=將它交給你處理。
如果您使用On Error Resume Next,則需要注意其中包含多少代碼:請記住,短語「If Err.Number <> 0 Then」僅指最前一個觸發的錯誤。
如果您的「On Error Resume Next」之後的代碼塊有幾個地方可能會合理預期它會失敗,則必須在每個可能的故障之後放置「If Err.number <> 0」行,檢查執行。
否則,在「出現錯誤繼續下一步」之後,就意味着它的含義 - 您的代碼可能會按照它喜歡的方式執行儘可能多的行,並且執行過程會繼續愉快地進行。這就是爲什麼這是屁股疼痛。
1)添加On Error Resume Next
頁面
2)的頂部在頁面
If Err.Number <> 0 Then
Response.Write (Err.Description)
Response.End
End If
On Error GoTo 0
很高興認識的底部添加以下代碼,但bejeebus那難看。我會切換腳本語言。 – 2009-01-23 11:36:41
告訴我關於它:-)我必須維護一些舊的項目,並且ASP缺少其他腳本語言現在擁有的很多標準功能...... – 2009-01-23 12:46:27