我的应用程序在客户端PC上发出错误“不支持指定的方法”。我不知道问题出在哪里。他没有安装Visual Studio,因此无法调试。
如果我在应用程序中编写一些调试代码并给他新的exe,有没有办法在WPF中获取调用堆栈?
答案 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;
}
在大图中,您可以捕获异常: 您可以在不同级别捕获未处理的异常:
AppDomain.UnhandledException
来自AppDomain中的所有主题。Dispatcher.UnhandledException
来自单个特定的UI调度程序
线程。Application.DispatcherUnhandledException
来自主界面
WPF应用程序中的调度程序线程。TaskScheduler.UnobservedTaskException
它使用任务调度程序进行异步操作。你应该
考虑一下你需要什么级别来捕获未处理的异常。#2和#3之间的决定取决于您是否使用多个WPF线程。