當我的應用程序因未處理的異常而崩潰時,我正在使用AppDomain.UnhandledException
事件處理程序執行某些日誌記錄。在AppDomain.UnhandledException處理程序中獲取除外對象
void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e) {...}
我想能夠登錄了typeof(object)
和各種object
場/屬性時,未處理的異常的來源是我的自定義對象類之一,但似乎無論是在信息不包括UnhandledExceptionEventArgs
或sender
對象。我試着鑄造sender
,但可以理解的是sender
只是AppDomain
,它引發了這個例外。
有沒有辦法從檢索此信息此事件處理程序?我唯一能想到的其他事情是在每次對象拋出時使用靜態字段來存儲對象的引用,但我認爲這需要我爲每種類型都設置一個靜態字段,以便我爲此執行此操作。
注:我知道,stack trace
可能會導致我異常的來源,但是這並沒有讓我記錄有關崩潰期間對象重要狀態信息。
例如,如果從e.ExceptionObject
我的堆棧跟蹤
Stack Trace:
at System.Net.Sockets.NetworkStream.EndRead(IAsyncResult asyncResult)
at CustomLibrary.CustomObject.readCallback(IAsyncResult ar)
at System.Net.LazyAsyncResult.Complete(IntPtr userToken)
...
我希望能夠得到的NetworkStream
對象,這將讓我找到相關CustomObject
集合中的一個參考。
嗨Dev。我沒有遇到捕獲未處理的異常或生成堆棧跟蹤的問題,我所需要的就是能夠獲取對引發原始異常的對象**的引用。我只用'throw;'重新拋出異常。 – khargoosh