资源简介
WPF遇到意外错误使其崩溃,这段简单的代码可以解决WPF崩溃后,程序重启,并且将错误信息记录到XML中!
代码片段和文件信息
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
using System.Windows;
using System.xml;
using System.xml.Linq;
namespace WpfAppCollapseTest
{
///
/// App.xaml 的交互逻辑
///
public partial class App : Application
{
public App()
{
Application.Current.DispatcherUnhandledException += Current_DispatcherUnhandledException;
}
private void Current_DispatcherUnhandledException(object sender System.Windows.Threading.DispatcherUnhandledExceptionEventArgs e)
{
xmlDocument xml = new xmlDocument();
xmlElement root err errTime mes = null;
try
{
if (File.Exists(“err.xml“))
{
xml.Load(“err.xml“);
root = xml.DocumentElement;
err = xml.CreateElement(“err“);
root.AppendChild(err);
errTime = xml.CreateElement(“errTime“);
errTime.InnerText = DateTime.Now.ToString();
err.AppendChild(errTime);
mes = xml.CreateElement(“mes“);
mes.InnerText = e.Exception.ToString();
err.AppendChild(mes);
xml.Save(@“err.xml“);
}
else
{
root = xml.CreateElement(“root“);
xml.AppendChild(root);
err = xml.CreateElement(“err“);
root.AppendChild(err);
errTime = xml.CreateElement(“errTime“);
errTime.InnerText = DateTime.Now.ToString();
err.AppendChild(errTime);
mes = xml.CreateElement(“mes“);
mes.InnerText = e.Exception.ToString();
err.AppendChild(mes);
xml.Save(@“err.xml“);
}
}
catch (Exception)
{
throw;
}
//MessageBox.Show(“我们很抱歉,当前应用程序遇到一些问题,该操作已经终止,请进行重试,如果问题继续存在,请联系管理员.“ “意外的操作“ MessageBoxButton.OK MessageBoxImage.Information);//这里通常需要给用户一些较为友好的提示,并且后续可能的操作
e.Handled = true;//使用这一行代码告诉运行时,该异常被处理了,不再作为UnhandledException抛出了。
System.Windows.Application.Current.Shutdown();
System.Reflection.Assembly.GetEntryAssembly();
string startpath = System.IO.Directory.GetCurrentDirectory();
System.Diagnostics.Process.Start(startpath + “/WpfAppCollapseTest.exe“); //xxxx.exe为要启动的程序
}
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 187 2016-04-01 10:26 WpfAppCollapseTest\WpfAppCollapseTest\App.config
文件 329 2016-04-01 10:26 WpfAppCollapseTest\WpfAppCollapseTest\App.xaml
文件 3052 2016-04-01 12:56 WpfAppCollapseTest\WpfAppCollapseTest\App.xaml.cs
文件 11776 2016-04-01 12:54 WpfAppCollapseTest\WpfAppCollapseTest\bin\Debug\WpfAppCollapseTest.exe
文件 187 2016-04-01 10:26 WpfAppCollapseTest\WpfAppCollapseTest\bin\Debug\WpfAppCollapseTest.exe.config
文件 32256 2016-04-01 12:54 WpfAppCollapseTest\WpfAppCollapseTest\bin\Debug\WpfAppCollapseTest.pdb
文件 23168 2016-04-01 12:55 WpfAppCollapseTest\WpfAppCollapseTest\bin\Debug\WpfAppCollapseTest.vshost.exe
文件 187 2016-04-01 10:26 WpfAppCollapseTest\WpfAppCollapseTest\bin\Debug\WpfAppCollapseTest.vshost.exe.config
文件 490 2013-03-18 17:00 WpfAppCollapseTest\WpfAppCollapseTest\bin\Debug\WpfAppCollapseTest.vshost.exe.manifest
文件 1203 2016-04-01 10:41 WpfAppCollapseTest\WpfAppCollapseTest\MainWindow.xaml
文件 1227 2016-04-01 11:01 WpfAppCollapseTest\WpfAppCollapseTest\MainWindow.xaml.cs
文件 2334 2016-04-01 10:30 WpfAppCollapseTest\WpfAppCollapseTest\obj\Debug\App.g.cs
文件 2334 2016-04-01 10:30 WpfAppCollapseTest\WpfAppCollapseTest\obj\Debug\App.g.i.cs
文件 7108 2016-04-01 10:41 WpfAppCollapseTest\WpfAppCollapseTest\obj\Debug\DesignTimeResolveAssemblyReferencesInput.cache
文件 1620 2016-04-01 10:41 WpfAppCollapseTest\WpfAppCollapseTest\obj\Debug\MainWindow.baml
文件 4997 2016-04-01 10:41 WpfAppCollapseTest\WpfAppCollapseTest\obj\Debug\MainWindow.g.cs
文件 4997 2016-04-01 10:41 WpfAppCollapseTest\WpfAppCollapseTest\obj\Debug\MainWindow.g.i.cs
文件 0 2016-04-01 10:26 WpfAppCollapseTest\WpfAppCollapseTest\obj\Debug\TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs
文件 0 2016-04-01 10:26 WpfAppCollapseTest\WpfAppCollapseTest\obj\Debug\TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs
文件 0 2016-04-01 10:26 WpfAppCollapseTest\WpfAppCollapseTest\obj\Debug\TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs
文件 1194 2016-04-01 12:55 WpfAppCollapseTest\WpfAppCollapseTest\obj\Debug\WpfAppCollapseTest.csproj.FileListAbsolute.txt
文件 919 2016-04-01 10:30 WpfAppCollapseTest\WpfAppCollapseTest\obj\Debug\WpfAppCollapseTest.csproj.GenerateResource.Cache
文件 2354 2016-04-01 10:30 WpfAppCollapseTest\WpfAppCollapseTest\obj\Debug\WpfAppCollapseTest.csprojResolveAssemblyReference.cache
文件 11776 2016-04-01 12:54 WpfAppCollapseTest\WpfAppCollapseTest\obj\Debug\WpfAppCollapseTest.exe
文件 1848 2016-04-01 10:41 WpfAppCollapseTest\WpfAppCollapseTest\obj\Debug\WpfAppCollapseTest.g.resources
文件 32256 2016-04-01 12:54 WpfAppCollapseTest\WpfAppCollapseTest\obj\Debug\WpfAppCollapseTest.pdb
文件 180 2016-04-01 10:30 WpfAppCollapseTest\WpfAppCollapseTest\obj\Debug\WpfAppCollapseTest.Properties.Resources.resources
文件 287 2016-04-01 12:54 WpfAppCollapseTest\WpfAppCollapseTest\obj\Debug\WpfAppCollapseTest_MarkupCompile.cache
文件 286 2016-04-01 10:41 WpfAppCollapseTest\WpfAppCollapseTest\obj\Debug\WpfAppCollapseTest_MarkupCompile.i.cache
文件 2217 2016-04-01 10:26 WpfAppCollapseTest\WpfAppCollapseTest\Properties\AssemblyInfo.cs
............此处省略18个文件信息
评论
共有 条评论