我正在做一些ASP 3.0的工作,一直沒能把它弄下來。如果存在語法錯誤,ASP將正確地中斷(並返回500錯誤),但如果我(有意)編寫了錯誤的sql查詢,然後執行查詢,則只會將返回的SQL錯誤直接打印在HTML上,而不是斷。這將是代碼(只需重新編寫sql)。另請注意,這不是函數的一部分。它就在頁面代碼中。在ASP 3.0上捕獲SQL錯誤(經典),並返回一個特定的HttpStatus
set cn = server.createobject("ADODB.Connection")
cn.open sConn
sql= "select thiscolumndoesnotexist from table1 "
set rs01 = server.createobject("ADODB.Recordset")
rs01.Open sql, cn, 0
%>
現在,我敢肯定,「在錯誤繼續下一步」不活躍,因爲如果我打破ASP語法的頁面,它會打破的時候了。所以我試圖做這樣的事情
On Error GoTo ErrorControl
code here..
ErrorControl:
Response.Status "500 You broke it"
Resume NExt
但隨後,由於On Error GoTo ErrorControl
的分頁符,就在「ErrorControl」開始。就好像它不支持命名的錯誤處理程序一樣。
我也嘗試設置On Error Resume Next
然後var error = Server.GetLastError()
,但是,它看起來好像沒有錯誤。我想回想一下,讀取Server.GetLastError只會在沒有輸出發送到客戶端的情況下工作(這是我的情況,因爲它是一個HTML輸出,並且在錯誤發生時,一半的文檔已經發送) 。
任何想法?任何幫助是極大的讚賞。謝謝。
我不相信serverside VBscript支持GOTO語句。這可能有助於http://www.aspmessageboard.com/showthread.php?t=20090 – Dee