ExceptionInfo 結構實例是使用 ManagedExceptionQueue pop 方法從隊列的頂部提取的。該結構包含異常的引發日期和時間。該日期和時間可用來創建一個托管的 NameValueCollection 對象(該對象帶有一個包含日期值的名稱值項)。該值的名稱為 ExceptionRaisedDateTime;只有在顯示事件日志中的異常時,才會使用它。
返回頁首
ExceptionPublisher 類
需要將從掛鉤的 SetErrorInfo 中提取的 .NET 異常中的信息記錄在某處 — 無論是文件、事件日志還是電子郵件。特別地,需要將前面提到的所有信息(例如,異常的屬性、堆棧跟蹤和任何內層異常)包含在日志中。
Microsoft 的 Patterns and Practices Group 已經專門針對此目的創建了 EMAB。如果您尚未完成有關工作,那么我強烈建議您查看其他所有可用的應用程序塊,以便了解它們是否適合于在您的當前項目中使用。異常塊是一種通過 ExceptionManager 類發布異常信息的簡單而靈活的機制。它還使您可以創建自己的發布程序,以便向其他數據源(例如,XML 文件或數據庫)發布數據。
需要調用該類中的 Publish 方法來發布異常。該方法被定義為靜態方法,這將便于 .NET 客戶端使用;但是,這對于 COM 客戶端不夠友好,因為它們無法調用靜態方法。一種簡單的解決方案是,使用門面模式將對該類的訪問包裝到另一個類中。為了使 .NET 組件更容易被 COM 客戶端使用,開發人員應當遵守各種準則。其中一個準則是確保該類具有默認構造函數。創建了兩個新的程序集,它們包含 ExceptionPublisher 類和 IExceptionPublisher 接口。以下代碼顯示了該類中的包裝方法:
public void Publish(Exception exception, NameValueCollection nameValueItems)
{
ExceptionManager.Publish(exception, nameValueItems);
}
延伸閱讀
文章來源于領測軟件測試網 http://www.kjueaiud.com/