資源簡(jiǎn)介
WPF遇到意外錯(cuò)誤使其崩潰,這段簡(jiǎn)單的代碼可以解決WPF崩潰后,程序重啟,并且將錯(cuò)誤信息記錄到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(“我們很抱歉,當(dāng)前應(yīng)用程序遇到一些問(wèn)題,該操作已經(jīng)終止,請(qǐng)進(jìn)行重試,如果問(wèn)題繼續(xù)存在,請(qǐng)聯(lián)系管理員.“?“意外的操作“?MessageBoxButton.OK?MessageBoxImage.Information);//這里通常需要給用戶(hù)一些較為友好的提示,并且后續(xù)可能的操作
????????????e.Handled?=?true;//使用這一行代碼告訴運(yùn)行時(shí),該異常被處理了,不再作為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為要啟動(dòng)的程序
????????}
????}
}
?屬性????????????大小?????日期????時(shí)間???名稱(chēng)
-----------?---------??----------?-----??----
?????文件????????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個(gè)文件信息
評(píng)論
共有 條評(píng)論