2

我有一個WPF程序,我正在開發其中我想要捕獲異常並將通知發送到中央(場外)權限,並將控制返回給用戶。系統常見於如Firefox時,Eclipse等.NET中的異常通知

機智軟件:

用戶點擊我的WPF程序,它是破碎的按鈕。例外被捕獲並且用戶被提供對話框「我們已經得到通知並且將盡快修復它」對話框,在此期間,您可能要小心<some smart summary of events>

之後,控制是以可用狀態返回。在後端,通過電子郵件或一些pub/sub接口將異常副本(追溯等)發送給開發團隊。

基本上,我想要一些像Hoptoad或Exceptional(Rails)。

  1. 這樣的圖書館是否已經存在?
  2. 如果沒有,最好的電子郵件和/或pub/sub庫有什麼用來構建它。

回答

1

您可能想看看the Enterprise Library(EntLib) - 日誌記錄應用程序塊。

它不會自動記錄異常,但允許您使用(並創建自定義)接收器,如事件日誌和數據庫來存儲消息。

0

Redgates smartassembly有一個異常記者可能會伎倆。如果不滾動你自己並不困難。

0

我們在我以前的團隊中使用過EntLib的日誌記錄,這非常有用,只要發生異常,它就會登錄到數據庫併發送電子郵件給我們。

在我目前的團隊中,我們使用簡單的電子郵件例外功能,在這裏我們顯示錯誤,用戶可以選擇向我們發送錯誤(它也需要屏幕截圖以及完整的日誌文件,而不是其中的例外)有時是有用的)

0
// WPF might have another event, this one works for winforms 
Application.ThreadException += OnUnhandledThreadException; 

//console apps 
AppDomain.CurrentDomain.UnhandledException += OnUnhandledException; 

// example method 
static void OnUnhandledException(object sender, UnhandledExceptionEventArgs args) 
{ 
    Exception e = (Exception) args.ExceptionObject; 

    SmtpClient client = new SmtpClient("my.smtp.server"); 
    var message = new MailMessage("[email protected]", "[email protected]") 
     { 
      Subject = "App failed", 
      Body = e.ToString() 
     }; 
    client.Send(message); 

    MessageBox.Show("Whoops. App failed. Sorry. Goodbye!"); 
}