zoukankan      html  css  js  c++  java
  • 扩展方法 --- 异常处理

    扩展方法: 异常处理。

    通常我们写异常经常在function内容添加Try catch..  在方法过多的时候这么写确实不是什么好办法。

    介绍一下我的扩展处理。 可能大家都是这么用的。会用的路过就剋以了。 不会的可以学习一下。

    扩展代码如下 :

    public static class ExceptionHelper
        {
            /// <summary>
            /// Exes the try asynchronous.
            /// </summary>
            /// <typeparam name="T"></typeparam>
            /// <param name="fun">The fun.</param>
            /// <param name="errorMessage">The error message.</param>
            /// <returns></returns>
            /// <exception cref="System.Exception"></exception>
            public static async Task<T> ExTryAsync<T>(Func<Task<T>> fun, string errorMessage)
            {
                try
                {
                    return fun().Result;
                }
                catch (Exception ex)
                {
                    throw new Exception(errorMessage + "---->" + ex.Message);
                }
            }
    
            /// <summary>
            /// Exes the try.
            /// </summary>
            /// <typeparam name="T"></typeparam>
            /// <param name="fun">The fun.</param>
            /// <param name="errorMessage">The error message.</param>
            /// <returns></returns>
            /// <exception cref="System.Exception"></exception>
            public static T ExTry<T>(Func<T> fun, string errorMessage)
            {
                try
                {
                    return fun();
                }
                catch (Exception ex)
                {
                    throw new Exception(errorMessage + "---->" + ex.Message);
                }
            }
    
            /// <summary>
            /// Exes the try.
            /// </summary>
            /// <typeparam name="T"></typeparam>
            /// <param name="fun">The fun.</param>
            /// <param name="defaultValue">The default value.</param>
            /// <returns></returns>
            public static T ExTry<T>(Func<T> fun, T defaultValue)
            {
                try
                {
                    return fun();
                }
                catch (Exception ex)
                {
                    LogWriter.Error(ex);
                    return defaultValue;
                }
            }
        }

    使用方法:

        public string GetValue()
        {
            LogHelperExtensions.Info("Object -> GetValue ");
            var baseValue = new BaseValue { State = false, Value = null, ErrDes = "系统服务异常!" };
            return ExceptionHelper.ExTry(() =>
            {
                //自己的业务逻辑
                return baseValue;
            }, baseValue);
        }

    可以看到 我们通过异常扩展我们可以将每一个方法体内容处理日志信息。更好的维护了项目的异常管理。

    服务级别产生了bug我们也可以直接通过日志查询。

    多说句 微软的 Async 很不错!

  • 相关阅读:
    CSS选择器
    HTML2
    html
    http协议
    python--Selectors模块/队列
    Linux系统管理02----目录和文件管理
    Linux系统管理01-----系统命令
    02作业 linux第一章和第三章命令
    01作业 Linux系统管理应用
    01:计算机硬件组层与基本配置------02计算机系统硬件核心知识
  • 原文地址:https://www.cnblogs.com/liuyunsheng/p/4286634.html
Copyright © 2011-2022 走看看