From a30f60c2bac2b53a50551fc2c6273c2c88ca6f78 Mon Sep 17 00:00:00 2001 From: qianlifeng Date: Wed, 20 Aug 2014 22:12:45 +0800 Subject: [PATCH] Fix a clipboard crash issues & don't default exit Wox when exception happens. --- Wox.Plugin.SystemPlugins/Calculator.cs | 12 ++++++++++-- Wox/Helper/ErrorReporting/ErrorReporting.cs | 12 ++++-------- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/Wox.Plugin.SystemPlugins/Calculator.cs b/Wox.Plugin.SystemPlugins/Calculator.cs index c1f135482e..67602cc47b 100644 --- a/Wox.Plugin.SystemPlugins/Calculator.cs +++ b/Wox.Plugin.SystemPlugins/Calculator.cs @@ -49,8 +49,16 @@ namespace Wox.Plugin.SystemPlugins SubTitle = "Copy this number to the clipboard", Action = (c) => { - Clipboard.SetText(result.Result); - return true; + try + { + Clipboard.SetText(result.Result); + return true; + } + catch (System.Runtime.InteropServices.ExternalException e) + { + MessageBox.Show("Copy failed, please try later"); + return false; + } } } }; } diff --git a/Wox/Helper/ErrorReporting/ErrorReporting.cs b/Wox/Helper/ErrorReporting/ErrorReporting.cs index 2134fa42cf..8b572a530c 100644 --- a/Wox/Helper/ErrorReporting/ErrorReporting.cs +++ b/Wox/Helper/ErrorReporting/ErrorReporting.cs @@ -27,26 +27,22 @@ namespace Wox.Helper.ErrorReporting public static void DispatcherUnhandledException(object sender, DispatcherUnhandledExceptionEventArgs e) { - if (System.Diagnostics.Debugger.IsAttached) return; + if (Debugger.IsAttached) return; e.Handled = true; string error = CreateExceptionReport("System.Windows.Application.DispatcherUnhandledException", e.Exception); Log.Error(error); - if (TryShowErrorMessageBox(error, e.Exception)) - { - Environment.Exit(0); - } + TryShowErrorMessageBox(error, e.Exception); } 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); Log.Fatal(error); TryShowErrorMessageBox(error, e.Exception); - Environment.Exit(0); } private static string CreateExceptionReport(string ev, object exceptionObject) @@ -97,7 +93,7 @@ namespace Wox.Helper.ErrorReporting else { sb.AppendLine(exceptionObject.GetType().FullName); - sb.AppendLine(new System.Diagnostics.StackTrace().ToString()); + sb.AppendLine(new StackTrace().ToString()); sb.AppendLine("```"); sb.AppendLine(); }