2010-09-05 20 views
1

我一直在尋找Windows API代碼包1.1,並看到一個錯誤示例,並希望將它集成到我的應用程序中,主要想法將是它顯示是否有任何錯誤應用程序發生,沒有任何,但我選擇一些。當發生異常時顯示窗體C#

我該如何編程?

我使用WPF

感謝

回答

3

在你的應用類中添加的構造函數:

DispatcherUnhandledException += new System.Windows.Threading.DispatcherUnhandledExceptionEventHandler(App_DispatcherUnhandledException); 

然後添加一個方法類似App類執行以下操作:

void App_DispatcherUnhandledException(object sender, System.Windows.Threading.DispatcherUnhandledExceptionEventArgs e) 
    { 
     e.Handled = true; 
     if (MessageBox.Show("An unexpected error has occurred. You should exit this program as soon as possible.\n\n" + 
          "Exit the program now?\n\nError details:\n" + e.Exception.Message, 
          "Unexpected error", MessageBoxButton.YesNo) == MessageBoxResult.Yes) 

      Shutdown(); 
    } 
+0

非常感謝! – 2010-09-30 21:22:56

1

你可以在你的程序將顯示有關錯誤的詳細信息形式的頂級的catch塊。或者,您可以使用Application.UnhandledException(假設您使用winforms),Application.ThreadException和AppDomain.UnhandledException來捕獲未處理的異常。

如果您希望在發生任何異常時處理消息窗口,或者不處理,那麼您必須在每個catch塊中顯式編寫代碼以顯示窗體,或者使用類似PostSharp的代碼編寫代碼顯示每當引發異常時的表單。

+0

你能夠給使用WPF的例子嗎?謝謝 – 2010-09-05 19:59:27

+0

我還沒有做WPF,所以我在微軟的網站上發現了這個:http://msdn.microsoft.com/en-us/library/ms743714.aspx#Unhandled_Exceptions – siride 2010-09-05 20:05:14

0

下面將捕獲所有異常,並在一個消息顯示出來:

請注意,如果你是重入線程,您可能需要測試它與一個線程重應用程序的行爲。

更多信息here

+1

嗨,你能展示它如何看起來像由於program.cs不在文件結構中,因此它是WPF應用程序。 – 2010-09-05 19:47:52

相關問題