我正在從ASP頁面進行MSSQL存儲過程CLR調用。發生異常時,會記錄並重新排列。在這種情況下,我需要能夠處理ASP頁面中的異常(如果可能)。請注意,在這種情況下,我無法擺脫傳統的ASP;我被困在這個項目的遺留系統中。如果您知道處理經典ASP中的異常的方法,請告訴我。我感謝幫助!在經典ASP頁面中處理.NET異常
感謝, 泰勒
我正在從ASP頁面進行MSSQL存儲過程CLR調用。發生異常時,會記錄並重新排列。在這種情況下,我需要能夠處理ASP頁面中的異常(如果可能)。請注意,在這種情況下,我無法擺脫傳統的ASP;我被困在這個項目的遺留系統中。如果您知道處理經典ASP中的異常的方法,請告訴我。我感謝幫助!在經典ASP頁面中處理.NET異常
感謝, 泰勒
傳統ASP的代碼語言是VBScript,所以你必須湊合用該語言的錯誤處理能力,通過使用「上的錯誤...」結構。您需要決定是否爲SQL調用創建一個通用錯誤處理程序或插入某些特定的錯誤處理邏輯。
這些是你的錯誤處理選項:
On Error Goto 0 ' Turns off error trapping. This is most likely what you got now
On Error Resume Next ' In case of error, simply execute next statement. Not recommended !
On Error Goto <label> ' Go to the specified label on an Error.
如果你使用上的錯誤轉到...,Err對象將包含錯誤信息。這意味着你應該能夠寫出類似於:
On Error Goto errorHandler
' Your code here.
errorHandler:
' Handle the error somehow. Perhaps log it and redirect to a prettier error page.
Response.Write Err.Number
Response.Write Err.Description
感謝您的回覆。在執行存儲過程之後(在ASP代碼中),出現以下代碼行:「如果Err.Number <> 0 Then」,然後是一些錯誤處理代碼。我懷疑asp.dll無法捕捉和處理.NET異常。你有什麼其他的建議?謝謝。 – Tyler 2010-05-07 18:35:23
如果經典ASP錯誤機制出現並向您顯示ASP錯誤,那麼您應該可以像這樣處理它。如果沒有,你可能會做其他的事情......也許試着發佈一些示例代碼? – driis 2010-05-07 22:14:22
我很長時間沒有在ASP中寫任何東西。你是對的;我錯誤地處理了錯誤。謝謝! – Tyler 2010-06-16 16:17:18
你是從ASP調用存儲過程嗎?或者你是否在調用一些.NET代碼,這稱爲存儲過程?也許向我們展示一個例子。 – driis 2010-05-07 16:06:23
我正在從ASP調用存儲過程;存儲過程會執行C#CLR代碼。 – Tyler 2010-05-07 18:23:04