2012-07-25 104 views
0

什麼我嘗試我的項目中做的是每次我提出一個默認異常處理

try 
     ... 
catch ex as exception 
     ...some logging code 
end try 

它的話有一個預定義的地方,當捕捉被觸發執行一些代碼的類。不知道它是否可能,但它會讓我的生活更輕鬆,並減少代碼中的重複。

public sub NullReferenceException() 
     runLogginfunction() 
end sub 

感謝

+0

什麼是平臺? – asawyer 2012-07-25 21:32:51

+0

http://stackoverflow.com/questions/337702/c-sharp-how-to-implement-one-catchem-all-exception-handler-with-resume – 2012-07-25 21:36:06

+0

這聽起來像你試圖捕捉和記錄異常一個非常普遍的方式。這是一個不好的做法。您應該編程以避免異常,並僅在特殊情況下使用異常處理。否則,你只是讓你的代碼錯誤,很難調試。 – Enigmativity 2012-07-26 03:48:34

回答

0

爲什麼這是行不通的?

try 
     ... 
catch ex as exception 
     NullReferenceException(ex) 
end try 

module allstuff 
    public sub NullReferenceException(ex as exception) 
      runLogginfunction(ex) 
    end sub 
end module 
+0

它會工作,但即時嘗試做的是不必在每次我寫一個嘗試捕獲每個嘗試捕獲任何登錄功能。 – Houlahan 2012-07-25 21:36:48

1

你不能同時捕捉到一個異常,並讓它自動記錄。你可以有一個或另一個。對於桌面應用程序,您可以使用UnhandledExceptionEventHandler來捕獲和記錄異常,在ASP.NET中,您可以使用global.aspx來實現相同的功能。或者你可以捕捉異常,並決定如何處理它 - 可以包括日誌記錄,但必須手動處理。