コード例 #1
0
        /// <summary>
        /// 应用程序异常事件
        /// </summary>
        protected override void OnUnhandledException(object sender, DispatcherUnhandledExceptionEventArgs eventArgs)
        {
            Exception exception = eventArgs.Exception;

            eventArgs.Handled = true;

            //释放遮罩
            BusyExtension.GlobalIdle();

            //提示消息
            string errorMessage = string.Empty;

            errorMessage = GetErrorMessage(exception.Message, ref errorMessage);
            MessageBox.Show(errorMessage, "错误", MessageBoxButton.OK, MessageBoxImage.Error);

            #region # 身份认证异常处理

            if (exception is FaultException faultException && faultException.Code.Name == HttpStatusCode.Unauthorized.ToString())
            {
                IList <Window> activeWindows = new List <Window>();
                foreach (Window window in Application.Current.Windows)
                {
                    activeWindows.Add(window);
                }

                base.DisplayRootViewFor <LoginViewModel>();
                activeWindows.ForEach(window => window.Close());
            }

            #endregion

            //记录日志
            WriteLog(exception);
        }
コード例 #2
0
        /// <summary>
        /// 应用程序异常事件
        /// </summary>
        protected override void OnUnhandledException(object sender, DispatcherUnhandledExceptionEventArgs eventArgs)
        {
            Exception exception = eventArgs.Exception;

            eventArgs.Handled = true;

            //释放遮罩
            BusyExtension.GlobalIdle();

            //提示消息
            string errorMessage = string.Empty;

            errorMessage = GetErrorMessage(exception.Message, ref errorMessage);
            MessageBox.Show(errorMessage, "错误", MessageBoxButton.OK, MessageBoxImage.Error);

            //记录日志
            WriteLog(exception);
        }