在傳統的ASP中,有沒有辦法在應用程序級別處理錯誤?在經典的ASP中,有沒有辦法在應用程序級別處理錯誤?
是否有處理傳統ASP 3中的錯誤/異常的指導原則? Server.GetLastError()沒有太多的工作...
我在找一些像在ASP.Net Global.asax中找到的Application_Error()
。
global.asa中的任何等價物?要智能記錄錯誤的類?像舊的企業庫異常處理ASP3 ...
嘿,我是一個夢想家!
非常感謝任何指針
在傳統的ASP中,有沒有辦法在應用程序級別處理錯誤?在經典的ASP中,有沒有辦法在應用程序級別處理錯誤?
是否有處理傳統ASP 3中的錯誤/異常的指導原則? Server.GetLastError()沒有太多的工作...
我在找一些像在ASP.Net Global.asax中找到的Application_Error()
。
global.asa中的任何等價物?要智能記錄錯誤的類?像舊的企業庫異常處理ASP3 ...
嘿,我是一個夢想家!
非常感謝任何指針
try:
some code that can raise an error
except:
do error handeling stuff
finally:
clean up, close files etc
可以在VBScript進行仿真如下:
class CustomErrorHandler
private sub class_terminate
if err.number > 0 then
do error handeling stuff
end if
clean up, close files etc
end sub
end class
with new CustomErrorHandler
some code
...
end with
請問這個窩K +當新創建的實例超出範圍時,將調用'class_terminate'方法。當interperter碰到'end with'語句或者由於錯誤導致callstack解開時,會發生這種情況。與原生Python方法相比,它不太漂亮,但它工作得很好,而且不難看。
對於頂級錯誤處理,您可以使用相同的技術。這一次不要使用with語句,而是創建一個錯誤處理程序的全局實例。請注意,ASPError對象提供的server.getLastError()與vbscript err對象不同,只有在IIS完成其server.transfer到500:100錯誤處理程序並返回到您的頁面以收集垃圾。示例處理程序:
class cDebugger
public sub do_debug
' print debug data here
end sub
public sub class_terminate
if server.getlasterror().Number <> 0 then
response.clear
call do_debug
end if
end sub
end class
你的意思是在每個請求中創建一個cDebugger對象嗎? – 2009-10-22 17:55:41
確實。我們在應用程序中有兩個調試類。在生產中,我們使用每個電子郵件發送一個錯誤報告,而在開發中我們使用一個將調試日誌轉儲到屏幕上的報告。通過應用程序對象中的設置完成開發和生產之間的切換。 – 2009-10-26 12:00:06
@JoostMoesker我明白CustomErrorHandler方法(try..catch..finally),但我不明白cDebugger方法的頂級錯誤處理。請你能舉一個更詳細的例子嗎? – Oliver 2016-09-21 07:42:38
<% On Error Resume Next %>
If Err.number <> 0 then 'do other stuff
不幸的是,Global.ASA僅提供了Application_OnStart, Application_OnEnd, Session_OnStart and Session_OnEnd
方法。沒有錯誤處理。
您可以得到最接近的(AFAIK)使用IIS中的Custom Errors
功能指向其他文件或URL以處理該錯誤。
在我看來,是太麻煩了。這是一個缺失的功能,可以讓我遷移一些網站,只爲了知道該網站正常運行而無任何錯誤。
我將IIS中的500錯誤頁面映射到自定義錯誤處理.asp頁面。這個頁面然後使用Server.GetLastError獲取最後一個錯誤給我發送關於錯誤,查詢字符串,服務器變量等細節的電子郵件。然後它向用戶顯示一個友好的消息。
有沒有辦法做到這一點**只有**的ASP錯誤,以便在.NET代碼中的500錯誤不重定向? – 2014-05-05 17:01:56
@JoshuaFrank我認爲錯誤500:100僅適用於ASP錯誤 – Oliver 2016-09-21 07:43:36
我們可以假設你正在加載VB6對象嗎? – ChaosPandion 2009-10-21 21:35:33
您是否認爲可以在.net中創建一個IHttpModule,並將您的模塊附加到網站上,以便將錯誤捕獲到網站上? – 2009-10-22 12:42:29
您可以舉一個您關心的Global.ASA中的應用程序級活動的例子嗎?除了ON ERROR RESUME NEXT,我不認爲有太多... – CLaFarge 2015-06-22 02:09:23