private void SynchronizationContext_UnhandledException(object sender, AysncUnhandledExceptionEventArgs e) { e.Handled = true; if (!(e.Exception is TaskCanceledException) && !(e.Exception is OperationCanceledException)) { var loader = ResourceLoader.GetForViewIndependentUse(); if (e.Exception is System.Net.Http.HttpRequestException || e.Exception.HResult <= -2147012721 && e.Exception.HResult >= -2147012895) { UIHelper.StatusBar_ShowMessage($"{loader.GetString("NetworkError")}(0x{Convert.ToString(e.Exception.HResult, 16)})"); } else if (e.Exception is Core.Exceptions.CoolapkMessageException) { UIHelper.StatusBar_ShowMessage(e.Exception.Message); } else if (e.Exception is Core.Exceptions.UserNameErrorException) { UIHelper.StatusBar_ShowMessage(loader.GetString("UserNameError")); } else if (SettingsHelper.Get <bool>(SettingsHelper.ShowOtherException)) { UIHelper.StatusBar_ShowMessage($"{loader.GetString("ExceptionThrown")}\n{e.Exception.Message}\n{e.Exception.HResult}(0x{Convert.ToString(e.Exception.HResult, 16)})" #if DEBUG + $"\n{e.Exception.StackTrace}" #endif ); SettingsHelper.logManager.GetLogger("UnhandledException").Error($"\n{e.Exception.Message}\n{e.Exception.HResult}\n{e.Exception.StackTrace}"); } } }
private void SynchronizationContext_UnhandledException(object sender, AysncUnhandledExceptionEventArgs e) { e.Handled = true; if (!(e.Exception is TaskCanceledException) && !(e.Exception is OperationCanceledException)) { var loader = Windows.UI.Core.CoreWindow.GetForCurrentThread() == null ? null : ResourceLoader.GetForCurrentView(); var s = "ExceptionThrown"; var s2 = "NetworkError"; if (e.Exception.HResult <= -2147012721 && e.Exception.HResult >= -2147012895) { UIHelper.ShowMessage($"{loader?.GetString(s2) ?? s2}(0x{Convert.ToString(e.Exception.HResult, 16)})"); } else if (e.Exception.Message.IndexOf("Coolapk message:") == 0) { UIHelper.ShowMessage(e.Exception.Message.Split('\n')[1]); } else { UIHelper.ShowMessage($"{loader?.GetString(s) ?? s}\n{e.Exception.Message}\n{e.Exception.HResult}(0x{Convert.ToString(e.Exception.HResult, 16)})" #if DEBUG + $"\n{e.Exception.StackTrace}" #endif ); SettingsHelper.logManager.GetLogger("UnhandledException").Error($"\n{e.Exception.Message}\n{e.Exception.HResult}\n{e.Exception.StackTrace}"); } } }
private async void SynchronizationContext_UnhandledException(object sender, AysncUnhandledExceptionEventArgs e) { e.Handled = true; if (!(e.Exception is TaskCanceledException) && !(e.Exception is OperationCanceledException)) { if (Window.Current?.Content != null) { if (e.Exception.HResult <= -2147012721 && e.Exception.HResult >= -2147012895) { UIHelper.ShowMessage($"网络异常(0x{Convert.ToString(e.Exception.HResult, 16)})"); } else if (e.Exception.GetType() == typeof(Helpers.Exceptions.ServerException)) { UIHelper.ShowMessage(e.Exception.Message); } else { await new MessageDialog($"{e.Exception.Message}\n{e.Exception.HResult}(0x{Convert.ToString(e.Exception.HResult, 16)})" #if DEBUG + $"\n{e.Exception.StackTrace}" #endif , "程序出现了错误……").ShowAsync(); } UIHelper.HideProgressBar(); } } }
private void SynchronizationContext_UnhandledException(object sender, AysncUnhandledExceptionEventArgs e) { e.Handled = true; try { LogHelper.Log("程序运行出现错误", LogType.ERROR, e.Exception); Utils.ShowMessageToast("程序出现一个错误,已记录"); } catch (Exception) { } }
private async void SynchronizationContext_UnhandledException(object sender, AysncUnhandledExceptionEventArgs e) { e.Handled = true; if (!(e.Exception is TaskCanceledException) && !(e.Exception is OperationCanceledException)) { if (Window.Current.Content != null) { await new MessageDialog($"{e.Exception.Message}\n{e.Exception.StackTrace}").ShowAsync(); Tools.HideProgressBar(); } } }
private void SynchronizationContext_UnhandledException(object sender, AysncUnhandledExceptionEventArgs e) { e.Handled = true; try { LogHelper.WriteLog(e.Exception); Utils.ShowMessageToast("程序出现一个错误,已记录"); MessageCenter.SendShowError(e.Exception); } catch (Exception) { } //await new MessageDialog("出现了一个错误:\r\n" + e.Exception.Message + "\r\n" + e.Exception.StackTrace).ShowAsync(); }
private async void SynchronizationContextUnhandledException(object sender, AysncUnhandledExceptionEventArgs e) { e.Handled = true; if (e.Exception.Message.Contains("404")) { await GalaSoft.MvvmLight.Threading.DispatcherHelper.RunAsync(async() => { await new MessageDialog(App.Current.Resources["ErrorCode_404"].ToString()).ShowAsync(); }); } else if (e.Exception.Message.Contains("A task was canceled")) { } else { await GalaSoft.MvvmLight.Threading.DispatcherHelper.RunAsync(async() => { await new MessageDialog("异步线程出错:\r\n" + e.Exception.Message).ShowAsync(); }); } }
private async void SynchronizationContext_UnhandledException(object sender, AysncUnhandledExceptionEventArgs e) { e.Handled = true; await new MessageDialog($"SynchronizationContext Unhandled Exception:\n{e.Exception.Message}\n{e.Exception.StackTrace}").ShowAsync(); Tools.rootPage.HideProgressBar(); }