错误'指定的方法不受支持'。获取调用堆栈

时间:2015-10-26 13:01:02

标签: c# wpf

我的应用程序在客户端PC上发出错误“不支持指定的方法”。我不知道问题出在哪里。他没有安装Visual Studio,因此无法调试。

如果我在应用程序中编写一些调试代码并给他新的exe,有​​没有办法在WPF中获取调用堆栈?

1 个答案:

答案 0 :(得分:0)

您可以订阅DispatcherUnhandledException以捕获应用程序级别的未处理异常并记录异常的堆栈跟踪。

App.xaml.cs中DispatcherUnhandledException的示例

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;
    }

在大图中,您可以捕获异常: 您可以在不同级别捕获未处理的异常:

  1. AppDomain.UnhandledException来自AppDomain中的所有主题。
  2. Dispatcher.UnhandledException来自单个特定的UI调度程序 线程。
  3. Application.DispatcherUnhandledException来自主界面 WPF应用程序中的调度程序线程。
  4. 每个AppDomain中的
  5. TaskScheduler.UnobservedTaskException 它使用任务调度程序进行异步操作。你应该 考虑一下你需要什么级别来捕获未处理的异常。
  6. #2和#3之间的决定取决于您是否使用多个WPF线程。