Fix a clipboard crash issues & don't default exit Wox when exception happens.

This commit is contained in:
qianlifeng
2014-08-20 22:12:45 +08:00
parent 1d13943caf
commit a30f60c2ba
2 changed files with 14 additions and 10 deletions

View File

@@ -49,8 +49,16 @@ namespace Wox.Plugin.SystemPlugins
SubTitle = "Copy this number to the clipboard", SubTitle = "Copy this number to the clipboard",
Action = (c) => Action = (c) =>
{ {
Clipboard.SetText(result.Result); try
return true; {
Clipboard.SetText(result.Result);
return true;
}
catch (System.Runtime.InteropServices.ExternalException e)
{
MessageBox.Show("Copy failed, please try later");
return false;
}
} }
} }; } };
} }

View File

@@ -27,26 +27,22 @@ namespace Wox.Helper.ErrorReporting
public static void DispatcherUnhandledException(object sender, DispatcherUnhandledExceptionEventArgs e) public static void DispatcherUnhandledException(object sender, DispatcherUnhandledExceptionEventArgs e)
{ {
if (System.Diagnostics.Debugger.IsAttached) return; if (Debugger.IsAttached) return;
e.Handled = true; e.Handled = true;
string error = CreateExceptionReport("System.Windows.Application.DispatcherUnhandledException", e.Exception); string error = CreateExceptionReport("System.Windows.Application.DispatcherUnhandledException", e.Exception);
Log.Error(error); Log.Error(error);
if (TryShowErrorMessageBox(error, e.Exception)) TryShowErrorMessageBox(error, e.Exception);
{
Environment.Exit(0);
}
} }
public static void ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e) public static void ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e)
{ {
if (System.Diagnostics.Debugger.IsAttached) return; if (Debugger.IsAttached) return;
string error = CreateExceptionReport("System.Windows.Forms.Application.ThreadException", e.Exception); string error = CreateExceptionReport("System.Windows.Forms.Application.ThreadException", e.Exception);
Log.Fatal(error); Log.Fatal(error);
TryShowErrorMessageBox(error, e.Exception); TryShowErrorMessageBox(error, e.Exception);
Environment.Exit(0);
} }
private static string CreateExceptionReport(string ev, object exceptionObject) private static string CreateExceptionReport(string ev, object exceptionObject)
@@ -97,7 +93,7 @@ namespace Wox.Helper.ErrorReporting
else else
{ {
sb.AppendLine(exceptionObject.GetType().FullName); sb.AppendLine(exceptionObject.GetType().FullName);
sb.AppendLine(new System.Diagnostics.StackTrace().ToString()); sb.AppendLine(new StackTrace().ToString());
sb.AppendLine("```"); sb.AppendLine("```");
sb.AppendLine(); sb.AppendLine();
} }