示例#1
0
        /// <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;
        }
示例#2
0
        /// <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;
        }