Пример #1
0
        internal static void 处理非UI线程(Exception ex)
        {
            H调试.记录异常(ex, "!!!处理非UI线程!!!");
            _DotNetException = true;
            if (自定义处理 != null)
            {
                if (自定义处理(ex))
                {
                    return;
                }
            }

            var __预计异常 = ex.GetBaseException() as M预计异常;

            提示不可恢复异常(__预计异常 != null ? __预计异常.Message : "程序出错, 即将关闭", ex.ToString());
        }
Пример #2
0
        internal static void 处理UI线程(Exception ex, bool __未处理自动退出 = true)
        {
            if (自定义处理 != null)
            {
                if (自定义处理(ex))
                {
                    return;
                }
            }
            var __异常描述   = ex.ToString();
            var __输入格式异常 = ex as M输入异常;

            if (__输入格式异常 != null)
            {
                提示可恢复异常(__输入格式异常.类别, __输入格式异常.描述);
                return;
            }
            var __Model验证异常 = ex as M验证异常;

            if (__Model验证异常 != null)
            {
                提示可恢复异常(__Model验证异常.类别, __Model验证异常.描述);
                return;
            }

            var __可恢复异常 = ex as M预计异常;

            if (__可恢复异常 != null)
            {
                提示可恢复异常(__可恢复异常.类别, __可恢复异常.描述);
                return;
            }
            if (ex is System.Security.SecurityException)
            {
                提示可恢复异常(ex.Message, string.Empty);
                return;
            }
            if (ex is ApplicationException)
            {
                提示可恢复异常("错误", ex.Message);
                return;
            }
            if (ex is NotImplementedException)
            {
                if (string.IsNullOrEmpty(ex.Message))
                {
                    提示可恢复异常("错误", "功能未实现");
                    return;
                }
                提示可恢复异常("错误", ex.Message);
                return;
            }

            H调试.记录异常(ex, "!!!处理UI线程!!!");
            if (__未处理自动退出)
            {
                H调试.截屏();
                提示不可恢复异常("出现未预计的错误,请将日志发送给开发人员", __异常描述);
                Environment.Exit(0);
            }
            提示可恢复异常("错误", "出现未预计的错误,请将日志发送给开发人员");
        }