一种基于Java的异常处理装置及其异常处理方法制造方法及图纸

技术编号:4005532 阅读:229 留言:0更新日期:2012-04-11 18:40
本发明专利技术是一种基于Java的异常处理的装置及其异常处理方法,其中异常处理装置主要包括异常管理器、XML解析器、类反射器、异常处理器、异常处理结果信息封装器及日志记录器,并提供异常处理框架接口、异常处理器接口和日志记录器接口,将异常处理封装在一个框架中,并为用户提供了统一的调用接口和格式化的配置文件。基于Java的异常处理方法,是将异常处理与系统逻辑分离,通过提供异常处理框架接口与异常处理器接口,使传入的异常封装在一个框架内处理。本发明专利技术使用户能够集中更多力量处理逻辑实现部分,同时用户可根据实际需要对框架进行扩展。本发明专利技术具有通用性,且采用多种异常处理返回结果相结合的方式,满足项目开发不同阶段对异常信息的不同需求。

【技术实现步骤摘要】

本专利技术涉及软件异常处理领域,具体涉及一种基于Java的异常处理装置及其异 常处理方法。
技术介绍
近年来,随着软件系统规模的增大和复杂度的提高,软件质量的保证和提高也越 来越难。软件质量是软件的生命。高质量的软件必须具有一定的容错性以提高软件的可靠 性、健壮性,最大限度地降低异常造成的损失。如何提高软件的容错性是目前软件开发领域 亟待解决的问题。Java 具体的异常处理结构由 try." throw/throws." catch." finally 块来实现。 try块用来存放可能出现异常的java语句,throw/throws用来抛出这些出现的异常,catch 用来捕获发生的异常,并对异常进行处理,Finally块用来清除程序中未释放的资源。不管 理try块的代码如何返回,finally块都总是被执行。Java有两种异常处理机制,分别是声 明异常和捕获异常。XML (Extensible Markup Language,可扩展标记语言),是描述数据信息的一种标 准语言。它是从SGML(标准通用标记语言)发展而来的。XML本身是一套定义语义标记的 规则,通过规则对文档进行说明,使文档包含语义信息。XML数据主要由五部分组成XML文 件头说明部分、文档类型定义部分、XML文件中的元素、XML文件中的属性以及元素和属性 的取值。元素和属性是XML数据文件的核心部分。SAX (Simple API for XML),在XML中对SAX的应用广泛,几乎所有的XML解析器 都会支持它。SAX解析器是一个专门用于解析XML配置文件的“推”模型,它在读取文档时 激活一系列事件,比如当发现元素开始、元素结束、文本、文档的开始或结束等时,SAX解析 器都会发送事件,这些事件被推给事件处理器,然后由事件处理器提供对文档内容的访问 并保存需要的数据。事件处理器中响应事件的代码是由程序员编写的。反射是动态发现类型信息的能力。反射机制是在运行状态中,对于任意的类都能 够知道这个类的所有属性和方法,对于任意的对象都能任意调用它的方法,这种动态获取 信息以及动态调用对象方法的功能称为反射机制。Java语言提供的反射功能都在java. reflect包里实现并提供相应的API方便用户调用。接口设计模式是通过引入接口来间接获得服务的设计模式。接口模式直接体现了 面向对象的系统设计的原则之一“针对接口编程,而不是针对实现编程”。“让调用者通过 接口间接使用服务者”,这是面向对象设计的基础——多态性正是从这样的设计中产生的。 接口将服务独立出来,服务的提供者就可以发生变化。使用接口模式,可以保证需要服务的 类不与任何提供服务的类发生耦合,从而提高代码的复用性。但是,和其他任何间接性一 样,接口模式会让程序变得更加难以理解,还有可能造成对继承的滥用。但是,通过接口模 式可以从接口的角度考虑设计思想。当前,对于软件中的异常处理,通常采用Java异常处理机制,它可以检测出程序运行时的异常状况并使系统恢复到正常状态,但是现有的Java异常处理机制在可配置性、 可扩展性、灵活性、信息的友好性等方面还不能很好地满足高质量软件的要求。具体而言, 存在以下问题(1)如果异常处理方式不当,容易造成严重的性能下降问题。(2) 一个系统中各层对异常处理的方式不同,不同的层需要编写不同的代码,工作 量大且复用性差,更新代码引起的改动较大。(3)在系统不同阶段对异常处理有不同的需求在开发阶段,开发人员需要得到 完整的详细的异常信息以便分析BUG;在发布阶段,用户希望看到的是比较友好的异常信 息提示。一种健全的异常处理机制应该能够通过简单的配置达到这样的效果。(4)异常处理返回的异常信息不够详细,不利于开发人员对BUG进行准确定位,查 找BUG产生原因将耗费大量时间。(5)异常记录方式和位置可能会在不同环境下有不同的要求,每次为不同的应用 编写代码降低了开发效率。(6)异常报告信息没有统一管理。很多项目中报告给用户的错误消息,都是程 序员在开发中自己编写的,对用户而言,常常不是友好的提示信息。而清晰友好(user friendly)的异常信息会让用户获得很好体验。另外,当前应用较多的是Struts框架的异常处理机制,它是以JVMCJava虚拟机) 的异常处理机制为基础的,尽管它提供了强大的通用错误处理机制,但是不能保证捕获到 所有的异常或者错误。因此目前的异常处理技术难以满足高质量软件的异常处理需求,无法提供统一的 异常处理接口,异常处理效率低下,异常处理代码的可复用性、可扩展性、可维护性差。
技术实现思路
本专利技术提供了,采用了 Java异 常处理技术和面向框架的设计思想,把异常处理封装在一个框架中,该框架为用户提供了 统一的调用接口、格式化的配置文件,具有日志记录功能,不仅可以达到统一协调程序员对 异常处理的目的,还极大地提高了异常处理代码的可复用性、可扩展性、可配置性、交互性 以及灵活性。一种基于Java的异常处理装置,包括异常处理框架接口、异常管理器、XML解析 器、类反射器、异常处理器接口、异常处理模块、异常处理结果信息封装器、日志记录器接 口、日志记录模块,以及日志记录器工厂;其中,异常处理模块中包含有默认异常处理器,扩 展包括i个异常处理器,日志记录模块中包含有默认日志记录器,扩展包括j个日志记录 器,i、j为非负整数。异常处理框架接口接收上层应用程序中的异常对象,将异常对象传递给异常管理 器;异常管理器接收传入的异常对象,读取默认的XML配置文件,调用XML解析器解析该 XML配置文件,提取出与产生异常对应的异常处理器的名称,XML解析器将解析得到的异常 处理器的名称传递给类反射器,类反射器根据该名称生成异常处理器实例,并将该异常处 理器实例传递给异常处理器接口 ;异常处理器接口根据读入的异常处理器实例,调用异常 处理模块中对应的异常处理器进行异常处理;异常处理器将异常处理后的结果信息经异常处理结果信息封装器进行封装后传递给异常处理器接口,异常处理器接口通过异常管理器 将该结果信息返回给上层应用程序。日志记录器工厂从异常管理器中接收异常对象,读取日志记录配置文件,根据日 志记录配置文件获取所要调用的日志记录器,通过日志记录器接口调用日志记录模块中对 应的日志记录器对异常进行日志记录;所述日志记录器接口为日志记录器提供统一接口。一种基于Java的异常处理方法,具体包括如下步骤步骤一当上层应用程序中出现异常的时候,异常处理框架接口接收从上层应用 程序中传入的异常对象。步骤二异常管理器收到来自异常处理框架接口传入的异常对象,加载异常处理 装置中默认的XML配置文件,并将该XML配置文件传递给XML解析器,同时,异常管理器将 异常对象传递给日志记录器工厂,日志记录器工厂读取日志记录配置文件,根据日志记录 配置文件获取对应于传入的异常对象的日志记录器名称,通过日志记录接口在日志记录模 块中生成对应的日志记录器进行日志记录。步骤三XML解析器对默认的XML配置文件进行解析,解析出该异常对象所属异常 对象类型所对应的异常处理器的名称、异常处理返回模式及异常信息报告方式,并将提取 出的异常处理器的名称传递给类反射器。步骤四判断异常对象类型是否为系统定义异常本文档来自技高网
...

【技术保护点】
一种基于Java的异常处理装置,包括日志记录器工厂,其特征在于,还包括异常处理框架接口、异常管理器、XML解析器、类反射器、异常处理器接口、异常处理模块、异常处理结果信息封装器、日志记录器接口和日志记录模块;其中,异常处理模块中包含有默认异常处理器,扩展包括i个异常处理器,日志记录模块中包含有默认日志记录器,扩展包括j个日志记录器,i、j为非负整数;异常处理框架接口接收上层应用程序中的异常对象,将异常对象传递给异常管理器;异常管理器接收传入的异常对象,读取默认的XML配置文件,调用XML解析器解析该XML配置文件,提取出与产生异常对应的异常处理器的名称,XML解析器将解析得到的异常处理器的名称传递给类反射器,类反射器根据该名称生成异常处理器实例,并将该异常处理器实例传递给异常处理器接口;异常处理器接口根据读入的异常处理器实例,调用异常处理模块中对应的异常处理器进行异常处理;异常处理器将处理后的结果信息经异常处理结果信息封装器封装后传递给异常处理器接口,异常处理器接口将该结果信息经异常管理器,返回给上层应用程序;日志记录器工厂从异常管理器中接收异常对象,读取日志记录配置文件,根据日志记录配置文件获取所要调用的日志记录器,通过日志记录器接口调用日志记录模块中对应的日志记录器对异常进行日志记录;所述日志记录器接口为日志记录器提供统一接口。...

【技术特征摘要】

【专利技术属性】
技术研发人员:曾莉娜余丹周家杰马世龙
申请(专利权)人:北京航空航天大学
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1