一种基于策略配置的异常处理方法与流程

文档序号:12176469阅读:561来源:国知局
一种基于策略配置的异常处理方法与流程

本发明涉及计算机软件技术领域,具体地说是一种基于策略配置的异常处理方法。



背景技术:

随着软件技术研究的不断深入和网络技术的广泛应用,企业资源计划(Enterprise Resource Planning,ERP)类的企业管理软件也得到了广泛的应用。但是随着企业管理的模块越来越多,管理的业务越来越复杂,其异常的处理就变为尤为重要。

编写任何.NET程序,都会使用到异常处理。异常处理的操作可分为三类:引发异常、捕获异常、处理异常。我们通常所说的错误,实际是指在程序中明确识别出含义的程序异常,并且由我们在程序中通过异常来向上引发的。如果是单一的根据异常的类型对异常进行处理,会将异常处理变得复杂,不利于高效的开发。

基于此,现提供一种基于策略配置的异常处理方法,来解决上述问题。



技术实现要素:

本发明的技术任务是针对以上不足之处,提供一种基于策略配置的异常处理方法。

一种基于策略配置的异常处理方法,其实现过程为:

首先对异常信息进行封装,服务调用者在捕获到异常时,对捕获的异常进行封装、截断处理之后,封装成异常处理的上下文信息;

调用异常处理引擎:将封装好的异常上下文,传给异常处理引擎,进行异常的处理;

进行异常上下文的解析:异常处理引擎在接收到异常上下文时,交给异常解析引擎,对上下文的信息进行解析;

调用异常处理策略引擎:解析完成之后,异常处理策略引擎根据传入的策略名称,调用不同的策略实现进行处理;

调用策略配置解析引擎:策略实现在进行处理时,调用策略配置解析引擎,对配置的策略配置进行解析,将结果返回;

调用策略执行引擎:根据策略解析引擎返回的结构,调用策略执行引擎,执行对应的异常处理。

封装的异常信息包括异常编号、异常的提示信息、异常堆栈和异常的上下文信息,以便后续异常的处理使用;且该异常信息封装成异常的上下文,包括:策略名称、框架上下文、异常信息、错误上下文扩展属性集合。

异常处理引擎提供了对外异常处理的接口,用于在进行异常处理的时候调用。

对上下文的信息进行解析是指解析出异常上下文存储的上下文信息,并根据当前语言类型,获取对应的异常的国际化提示信息。

在调用异常处理策略引擎时,如果策略名称未传入,则执行默认的内置策略,如果传入策略名称,则根据策略名称,获取对应的策略配置信息。

调用策略执行引擎时,根据返回的处理程序列表,调用对应的处理程序,进行异常处理,其处理的程序包括记录日志、弹出界面。

本发明的一种基于策略配置的异常处理方法和现有技术相比,具有以下有益效果:

本发明的一种基于策略配置的异常处理方法,提供了一种异常的处理方式,实现异常和处理策略的动态匹配,使得调用者能够灵活的对异常进行处理,降低了代码中对异常处理的复杂度,简化了异常的处理过程,提供了异常处理的灵活性,提高了开发效率,实用性强,适用范围广泛,尤其适用于复杂的企业管理软件领域,具有很好的推广应用价值。

附图说明

附图1是本发明的异常处理的架构图。

附图2是本发明的异常处理时序图。

具体实施方式

下面结合附图及具体实施例对本发明作进一步说明。

如附图1所示,本发明公开了一种基于策略配置的异常处理方法,基于配置的策略,实现对于捕获的异常和处理策略的动态匹配处理,简化了异常的处理过程,提供了异常处理的灵活性。

该发明基于异常的捕获处理机制,采用配置的形式,动态的实现异常和处理策略的匹配。该发明使得调用者能够灵活的对异常进行处理,降低了代码中对异常处理的复杂度,提高了开发效率。

其实现基于以下几个步骤和内容:

首先对异常信息进行封装,服务调用者在捕获到异常时,对捕获的异常进行封装、截断处理之后,封装成异常处理的上下文信息;

调用异常处理引擎:将封装好的异常上下文,传给异常处理引擎,进行异常的处理;

进行异常上下文的解析:异常处理引擎在接收到异常上下文时,交给异常解析引擎,对上下文的信息进行解析;

调用异常处理策略引擎:解析完成之后,异常处理策略引擎根据传入的策略名称,调用不同的策略实现进行处理;

调用策略配置解析引擎:策略实现在进行处理时,调用策略配置解析引擎,对配置的策略配置进行解析,将结果返回;

调用策略执行引擎:根据策略解析引擎返回的结构,调用策略执行引擎,执行对应的异常处理。

在异常的封装步骤中。调用者在捕获到异常时,需要对异常进行封装,封装的信息包括异常编号、异常的提示信息、异常堆栈和异常的上下文信息等,以便后续异常的处理使用。

对于异常的封装成异常的上下文ExceptionContext,其主要包含的:策略名称(PolicyName)、框架上下文(State)、异常信息(Exception)、错误上下文扩展属性集合(ExtendedProperties)。

在调用异常处理引擎的步骤中,异常处理引擎提供了对外异常处理的接口,以方便在进行异常处理的时候调用。

异常处理引擎提供了对外异常处理的接口,以方便在进行异常处理的时候调用。其对外提供的方法列表如下:

1)Handle(ExceptionContext exceptionContext):此方法不弹出异常提示窗口,客户端和服务端都可以调用;

2)HandleUI(ExceptionContext exceptionContext):此方法弹出异常提示窗口,只能客户端调用。

在异常下文的解析的步骤中,针对传递过来的异常上下文,需要对其进行解析,解析出其存储的上下文信息,同时根据当前语言类型,获取对应的异常的国际化提示信息。

在调用异常处理策略引擎的步骤中,解析完成之后,异常处理策略引擎根据传入的策略名称,调用不同的策略实现进行处理。如果策略名称未传入,则执行默认的内置策略,如果传入策略名称,则根据策略名称,获取对应的策略配置信息;

在调用策略配置解析引擎的步骤中,根据传入的策略名称,解析预先配置的策略配置文件,返回其策略对应的处理程序列表。

在调用策略执行引擎的步骤中,调用策略执行引擎根据返回的处理程序列表,调用对应的处理程序,进行异常处理,其处理的程序包括:记录日志、弹出界面或者其他操作。

基于前面所述的基于策略配置的异常处理方法实现思路,在具体项目实施的过程中,如附图2所示,其主要步骤如下:

在配置文件中配置配置节。基于配置组件,在对应的策略配置文件中配置对应的配置节,以便预置策略和对应的处理程序,其配置的配置文件示意如下所示:

<configuration>

<ExceptionHandling DefaultPolicyName="General">

<ExceptionPolicies>

<add name="General" Description="默认通用异常策略" HandlerList="DefaultLog"/>

<add name="Repair" Description="客户端修复策略" HandlerList="DefaultLog,Repair"/>

</ExceptionPolicies>

<ExceptionHandlers>

<add name="DefaultLog" ProcessInfo="WriteLog" Description="默认的异常日志处理程序" />

<add name="ShowUi" ProcessInfo="RepairExe" Description="异常修复处理程序" />

</ExceptionHandlers>

</ExceptionHandling>

</configuration>

调用异常处理程序,其封装的异常上下文,其主要参数有以下几个:

State:程序运行所需要的上下文,其主要包括登录的Session信息、登录实例信息等;

PolicyName:策略名称,其主要用来从配置文件中查找对应的处理程序,如果不传递,则调用默认的处理策略;

Exception:需要处理的异常实例,其主要是对于捕获的异常进行包装之后的异常类;

ExtendedProperties:异常处理的上下文信息,其主要用来传递出现异常的上下文信息,以方便异常处理的时候使用。

其异常处理的执行调用程序。其步骤简单描述如下:

调用者调用WrapException,对异常进行封装;

调用者调用ExceptionEngine对外提供的接口,处理异常;

ExceptionEngine调用ExceptionContextAnalysis,解析异常的上下文,获取异常处理的信息;

ExceptionEngine调用ExceptionPolicyEngine执行策略的调用;

ExceptionPolicyEngine调用PolicyAnalysisEngine,解析策略配置文件;

ExceptionPolicyEngine调用PolicyExecuteEngine,执行策略的处理程序;

PolicyExecuteEngine调用具体的策略实现,完成整个异常处理过程。

通过上面具体实施方式,所述技术领域的技术人员可容易的实现本发明。但是应当理解,本发明并不限于上述的具体实施方式。在公开的实施方式的基础上,所述技术领域的技术人员可任意组合不同的技术特征,从而实现不同的技术方案。

除说明书所述的技术特征外,均为本专业技术人员的已知技术。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1