Asp-Classic

在經典 ASP 中,有沒有辦法在應用程序級別處理錯誤?

  • June 20, 2015

在經典 ASP 中,有沒有辦法在應用程序級別處理錯誤?

經典 ASP 3 中是否有處理錯誤/異常的指南?Server.GetLastError() 不是很多可以使用的……

我正在尋找類似Application_Error()ASP.Net Global.asax 中的內容。

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    

這是如何運作的?當新創建的實例超出範圍時,將呼叫“class_terminate”方法。當interperter點擊’end with’語句或呼叫堆棧由於錯誤而展開時,就會發生這種情況。它不如原生 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

引用自:https://stackoverflow.com/questions/1603786