扩展方法 --- 异常处理


扩展方法: 异常处理。

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

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

扩展代码如下 :

public static class ExceptionHelper
    {
        /// 
        /// Exes the try asynchronous.
        /// 
        /// 
        /// The fun.
        /// The error message.
        /// 
        /// 
        public static async Task ExTryAsync(Func> fun, string errorMessage)
        {
            try
            {
                return fun().Result;
            }
            catch (Exception ex)
            {
                throw new Exception(errorMessage + "---->" + ex.Message);
            }
        }

        /// 
        /// Exes the try.
        /// 
        /// 
        /// The fun.
        /// The error message.
        /// 
        /// 
        public static T ExTry(Func fun, string errorMessage)
        {
            try
            {
                return fun();
            }
            catch (Exception ex)
            {
                throw new Exception(errorMessage + "---->" + ex.Message);
            }
        }

        /// 
        /// Exes the try.
        /// 
        /// 
        /// The fun.
        /// The default value.
        /// 
        public static T ExTry(Func 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 很不错!