扩展方法 --- 异常处理
扩展方法: 异常处理。
通常我们写异常经常在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 很不错!