/// <summary> /// 处理模块初始化过程中的任何异常,使用<seealso cref="ILoggerFacade"/>记录,并且抛出 /// <seealso cref="ModuleInitializeException"/>。 /// 可以重写这个方法提供不同的方式。 /// </summary> /// <param name="moduleInfo"> /// 产生异常的模块信息 /// </param> /// <param name="assemblyName"> /// 程序集名称。 /// </param> /// <param name="exception"> /// 引起当前错误的异常。 /// </param> /// <exception cref="ModuleInitializeException"></exception> public virtual void HandleModuleInitializationError(ModuleInfo moduleInfo, string assemblyName, Exception exception) { if (moduleInfo == null) { throw new ArgumentNullException("moduleInfo"); } if (exception == null) { throw new ArgumentNullException("exception"); } Exception moduleException; if (exception is ModuleInitializeException) { moduleException = exception; } else { if (!string.IsNullOrEmpty(assemblyName)) { moduleException = new ModuleInitializeException(moduleInfo.ModuleName, assemblyName, exception.Message, exception); } else { moduleException = new ModuleInitializeException(moduleInfo.ModuleName, exception.Message, exception); } } this.loggerFacade.Log(moduleException.ToString(), Category.Exception, Priority.High); throw moduleException; }
/// <summary> /// 处理模块初始化过程中的任何异常,使用<seealso cref="ILoggerFacade"/>记录,并且抛出 /// <seealso cref="ModuleInitializeException"/>。 /// 可以重写这个方法提供不同的方式。 /// </summary> /// <param name="moduleInfo"> /// 产生异常的模块信息 /// </param> /// <param name="assemblyName"> /// 程序集名称。 /// </param> /// <param name="exception"> /// 引起当前错误的异常。 /// </param> /// <exception cref="ModuleInitializeException"></exception> public virtual void HandleModuleInitializationError(ModuleInfo moduleInfo, string assemblyName, Exception exception) { if (moduleInfo == null) throw new ArgumentNullException("moduleInfo"); if (exception == null) throw new ArgumentNullException("exception"); Exception moduleException; if (exception is ModuleInitializeException) { moduleException = exception; } else { if (!string.IsNullOrEmpty(assemblyName)) { moduleException = new ModuleInitializeException(moduleInfo.ModuleName, assemblyName, exception.Message, exception); } else { moduleException = new ModuleInitializeException(moduleInfo.ModuleName, exception.Message, exception); } } this.loggerFacade.Log(moduleException.ToString(), Category.Exception, Priority.High); throw moduleException; }