2015-10-26 62 views
-1

我的應用程序在客戶端PC上給出了一個錯誤'不支持指定的方法'。我不知道問題來自哪裏。他沒有安裝Visual Studio,因此無法進行調試。錯誤「不支持指定的方法」。獲取調用堆棧

如果我在應用程序中編寫一些調試代碼並給他新的exe,是否有任何方法可以在WPF中獲取調用堆棧?

+1

最簡單的可能是用'ex.ToString()'獲得整個異常細節。這會向您顯示調用堆棧和任何內部異常詳細信息。 –

回答

0

您可以訂閱DispatcherUnhandledException以在應用程序級捕獲未處理的異常並記錄異常的堆棧跟蹤。在App.xaml.cs

public App() { 
     this.DispatcherUnhandledException += OnDispatcherUnhandledException; 
    } 

    void OnDispatcherUnhandledException(object sender, DispatcherUnhandledExceptionEventArgs e) { 
     string errorMessage = string.Format("An unhandled exception occurred: {0}", e.Exception.Message); 
     MessageBox.Show(errorMessage, "Error", MessageBoxButton.OK, MessageBoxImage.Error); 
     e.Handled = true; 
    } 

DispatcherUnhandledException

示例在一個大的圖片,你可以捕捉在例外情況: 你可以在不同級別的陷阱未處理的異常:

  1. AppDomain.UnhandledException從所有線程在AppDomain中。
  2. Dispatcher.UnhandledException從一個特定的UI調度程序 線程。
  3. Application.DispatcherUnhandledException從您的WPF應用程序的主UI 分派器線程。
  4. TaskScheduler.UnobservedTaskException從每個AppDomain 內使用任務調度程序進行異步操作。你應該在 考慮你需要什麼級別來捕獲未處理的異常。

決定#2和#3取決於您是否使用多個WPF線程。

+0

我認爲產品已經在客戶端..不是op嗎? – Muds

相關問題