异常处理的方法及装置的制作方法

文档序号:6331180阅读:473来源:国知局
专利名称:异常处理的方法及装置的制作方法
技术领域
本发明涉及一种异常处理的方法及装置。
背景技术
计算机的异常处理功能提供了处理程序运行时出现的任何意外或异常情况的方 法。异常处理使用try、catch和finally的关键字来尝试可能未成功的操作,处理失败,以 及在事后清理资源。对待异常通常并不是简单地结束程序,而是转去执行某段特殊代码处 理这个异常,设法恢复程序继续执行。异常发生时,系统从生成对象的代码开始,沿方法的 调用栈逐层回溯,寻找相应的处理代码,并把异常对象交给该方法进行处理。异常处理理论上有两种基本模型一种称为“终止模型”,在这种模型中,将假设异 常非常严重,以致于程序无法返回到异常发生的地方继续执行。一旦异常被抛出,就表明异 常已无法挽回,也不能回来继续执行;另一种称为“恢复模型”,意思是异常处理程序的工作 是修正异常,然后重新尝试调动出问题的方法。对于恢复模型,通常希望异常被处理之后能 继续执行程序。在这种情况下,不是抛出异常,而是调用方法修正异常。或者把try块放在 while循环里,这样就可以不断的进入try块,直到得到满意的结果。然而处理程序必须关 注异常抛出的地点,这势必要包含依赖于抛出位置的非通用性代码。这增加了代码编写和 维护的困难,对于异常可能会从许多地方抛出的大型程序来说更是如此。经过发明人分析可知,由于现有的异常处理方法在遇到异常状态时就进行异常处 理,由于程序代码庞大,因此会导致异常处理的过程复杂、效率低,针对相关技术中异常处 理的过程复杂导致异常处理正确性低、效率低,以至于软件健壮性较差的问题,目前尚未提 出有效的解决方案。

发明内容
本发明的主要目的在于提供一种异常处理的方法及装置,以解决异常处理的过程 复杂导致异常处理正确性低、效率低,以至于软件健壮性较差的问题。为了实现上述目的,根据本发明的一个方面,提供了一种异常处理的方法。根据本发明的异常处理的方法包括检测到指令中的一个或多个异常状态;在指 令异常状态列表中查找异常状态对应的属性信息,指令异常状态列表保存各个异常状态的 属性信息;显示异常状态对应的属性信息。进一步地,属性信息可以包括异常编号、异常类型、异常等级、异常消息和异常解 决方案。进一步地,在指令异常状态列表中查找异常状态对应的属性信息之后,方法还可 以包括获取异常状态的异常类型或者异常等级;根据异常类型或者异常等级对异常状态 进行相应的异常处理。进一步地,根据异常类型或者异常等级对异常状态进行相应的异常处理可以包 括比较异常等级是否在预定等级的范围内,其中,当异常等级在预定等级的范围之内时,
4逐层返回到该异常等级对应的异常状态进行异常处理,并显示异常状态对应的属性信息; 当异常等级在预定等级的范围之外时,在预定时间内对该异常等级对应的异常状态进行异 常处理,该异常状态的属性信息在后台添加。进一步地,显示异常状态对应的属性信息之前,方法还可以包括通过传输接口在 日志文件中记录该异常状态的属性信息。进一步地,可以提供一个用户界面读取并显示异常状态对应的属性信息。为了实现上述目的,根据本发明的另一方面,提供了一种异常处理的装置。根据本发明的异常处理的装置包括检测模块,用于检测到指令中的一个或多个 异常状态;查找模块,用于在指令异常状态列表中查找异常状态对应的属性信息,指令异常 状态列表保存各个异常状态的属性信息,其中,属性信息包括异常编号、异常类型、异常等 级、异常消息和异常解决方案;显示模块,用于显示异常状态对应的属性信息。进一步地,异常处理装置还可以包括获取模块,用于获取异常状态的异常类型或 者异常等级;处理模块,用于根据异常类型号或者异常等级对异常状态进行相应的异常处 理。进一步地,处理模块可以包括比较模块,用于比较异常等级是否在预定等级的范 围内,其中,当异常等级在预定等级的范围之内时,逐层返回到该异常等级对应的异常状态 进行异常处理,并显示异常状态对应的属性信息;当异常等级在预定等级的范围之外时,在 预定时间内对该异常等级对应的异常状态进行异常处理,该异常状态的属性信息在后台添 加。进一步地,装置还可以包括保存模块,用于通过传输接口在日志文件中记录该异 常状态对应的属性信息。进一步地,显示模块可以包括显示界面,用于提供一个用户界面读取并显示异常 状态对应的属性信息。通过本发明,采用检测到指令中的一个或多个异常状态;在指令异常状态列表中 查找异常状态对应的属性信息,指令异常状态列表保存各个异常状态的属性信息;显示异 常状态对应的属性信息,解决了异常处理的过程复杂导致异常处理正确性低、效率低,以至 于软件健壮性较差的问题,进而达到了快速准确地定位到发生异常的地点,提高异常处理 的正确性和处理效率,便于软件代码维护,提高用户的易用性和软件健壮性的效果。


此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发 明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中图1是根据本发明实施例的异常处理的装置示意图;图2是根据本发明实施例的异常处理的方法流程图。
具体实施例方式需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相 互组合。下面将参考附图并结合实施例来详细说明本发明。根据本发明的实施例,提供了 一种异常处理的装置。
5
图1是根据本发明实施例的异常处理的装置示意图。如图1所示,该异常处理的 装置包括检测模块11,用于检测到指令中的一个或多个异常状态;查找模块13,用于在指 令异常状态列表中查找异常状态对应的属性信息,指令异常状态列表保存各个异常状态的 属性信息,其中,属性信息包括异常编号、异常类型、异常等级、异常消息和异常解决方案; 显示模块15,用于显示异常状态对应的属性信息。本发明实施例中通过设置各种指令异常状态的列表对各种指令异常的多个属性 信息进行定义,在逐层返回的过程中根据查找模块13获取一个或多个属性信息的组合,并 将异常状态的各个属性信息显示给用户,查找模块13执行的查找过程便于操作者查找异 常的抛出地点,以便后续进行正确的异常处理,即实现对异常状态进行报错。同时根据一个 或多个属性信息的组合调用不同的处理方法来解决异常处理的过程复杂导致异常处理正 确性低、效率低,以至于软件健壮性较差的问题。本发明的上述实施例便于软件代码维护, 提高了用户的易用性和软件健壮性。本发明中的异常属性信息可以包括以下几项异常编号、异常类型、异常等级、异 常消息和异常解决方案。其中,异常等级表示该异常的严重程度,按照严重程度对异常进行 划分;异常消息为当前异常发生时所携带的信息;异常解决方案表示当前异常出现后对常 产生的原因进行分析并提示解决的方案。本发明的异常处理装置还可以包括获取模块17,用于获取异常状态的异常类型 或者异常等级;处理模块19,用于根据异常类型号或者异常等级对异常状态进行相应的异
常处理。上述实施例中优选的,设计者可以根据多个属性信息中的异常类型确定当前异常 状态的层,系统根据异常类型逐层返回到该层来调用下一步的异常处理方法;另外,设计者 也可以根据异常等级确定当前异常状态的层,该等级可以表征当前异常的严重程度,对异 常较严重的异常状态系统根据查询结果优先调用异常处理方法执行异常处理。该实施例解 决了以往异常处理过程复杂、效率低的问题,可以快速确定异常的地点。本发明的处理模块19可以包括比较模块,该比较模块用于比较异常等级是否在 预定等级的范围内,其中,当异常等级在预定等级的范围之内时,逐层返回到该异常等级对 应的异常状态进行异常处理,并显示异常状态对应的属性信息;当异常等级在预定等级的 范围之外时,在预定时间内对该异常等级对应的异常状态进行异常处理,该异常状态的属 性信息在后台添加。上述实施例优选的将异常等级和设计者设定的预定等级进行比较判断,当异常 的严重等级超过预定范围时,系统只在最高层的调用函数中显示异常,即对符合预定范围 内的异常等级对应的异常状态进行异常函数的调用,而对底层的被调用函数不允许显示异 常,只能添加异常和异常扩展信息。在异常抛出之后,上述装置还可以包括保存模块,用于通过传输接口在日志文件 中记录该异常状态对应的属性信息。该实施例中实现通过日志文件详细记录异常的详细信 息,为最终的显示异常等具体操作作准备工作。本发明的显示模块可以提供一种显示界面,用于提供一个用户界面读取并显示异 常状态对应的属性信息。采用用户界面的显示方式简单、清晰,易用性高。图2是根据本发明实施例的异常处理的方法流程图。如图1所示,该方法包括如下的步骤S202至步骤S206 步骤S202,通过图1中的检测模块11检测到指令中的一个或多个异常状态。该步 骤为用户操作过程中系统检测到异常状态。步骤S204,通过图1中的查找模块13在指令异常状态列表中查找检测模块11检 测到的异常状态对应的属性信息,指令异常状态列表保存各个异常状态的属性信息;其中, 属性信息可以包括异常编号、异常类型、异常等级、异常消息和异常解决方案。步骤S206,通过图1种的显示模块15将显示查找模块13获取的异常状态对应的
属性信息。上述实施例通过设置各种指令异常状态的列表对各种指令异常的多个属性信息 进行定义,步骤中的查找过程便于操作者查找异常的抛出地点,以便后续进行正确的异常 处理,即实现对异常状态进行报错,提高了后续异常处理的正确性和效率,便于用户对软件 代码维护,提高了用户的易用性和软件健壮性。本实施例在指令异常状态列表中查找异常状态对应的属性信息之后,方法还可以 包括获取异常状态的异常类型或者异常等级;根据异常类型或者异常等级对异常状态进 行相应的异常处理。优选的,根据异常类型或者异常等级对异常状态进行相应的异常处理可以包括 比较异常等级是否在预定等级的范围内,其中,当异常等级在预定等级的范围之内时,逐层 返回到该异常等级对应的异常状态进行异常处理,并显示异常状态对应的属性信息;当异 常等级在预定等级的范围之外时,在预定时间内对该异常等级对应的异常状态进行异常处 理,该异常状态的属性信息在后台添加。由上述可知在在多层的异常处理调用中,对发生的异常状态加以详细描述,即设 定异常状态属性信息,优选的可以定义异常等级以及异常编号等宏,本发明实施例在异常 抛出时不在当前层内处理异常,把异常抛出到调用函数中,采用逐层返回到实际产生当前 层异常的层获取其异常处理函数。本实施例可以将异常分为若干类,如系统、文件操作、数 据库操作、使用权限等,返回时可以同时返回异常类别和编号,针对不同的异常进行相应的 异常处理。本发明实施例的操作的原则有两点首先只有在函数自身内部发生的异常状态, 才能添加异常,如果是调用其它函数发生了异常,则只在调用点添加附加信息并返回异常。 另外只在最高层(例如是在预定范围内的异常等级所对应的异常所在的层)的调用函数中 显示异常,底层(例如在预定范围外的异常等级所对应的异常所在的层)被调用函数不允 许显示异常状态的属性信息,只能添加异常信息和异常扩展信息。其次调用函数返回的异 常需要全路径处理,返回几种异常就要处理几种异常。这样保证了产生异常的属性信息不 会混淆,层级分明,逐层返回。本发明实施例中,在显示异常状态对应的属性信息之前,方法还可以包括通过传 输接口在日志文件中记录该异常状态的属性信息。该实施例具体实施例是可以通过各个模块将异常状态的属性信息记录到日志中, 最终将异常状态的属性信息显示。例如,采用一段计算机程序通过ICxErrorHandle接口处 理初始化异常日志环境、异常状态的各个属性信息从日志中读写、最终在界面中显示异常 状态的属性信息等具体操作,具体的异常属性信息则可以保存在ICxError接口中,即异常状态的详细信息记录在日志文件中。同时本发明可以提供一个用户界面读取并显示异常状态对应的属性信息。该用户 界面简单直观。从以上的描述中,可以看出,本发明实现了如下技术效果本发明提高了错误处理 的正确性,针对不同异常采取不同处理方式,提高软件健壮性。提高了错误处理的效率,快 速准确地定位到发生异常的地点,便于代码维护。通过实际系统的运行,逐层返回机制的使 用使得软件稳定性得到了有效提高,同时对于定位错误和完善地进行错误处理取得了实际 效果。需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的 计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不 同于此处的顺序执行所示出或描述的步骤。显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用 的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成 的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储 在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们 中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的 硬件和软件结合。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技 术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修 改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
一种异常处理的方法,其特征在于,包括检测到指令中的一个或多个异常状态;在指令异常状态列表中查找所述异常状态对应的属性信息,所述指令异常状态列表保存各个所述异常状态的所述属性信息;显示所述异常状态对应的所述属性信息。
2.根据权利要求1所述的方法,其特征在于,所述属性信息包括异常编号、异常类型、 异常等级、异常消息和异常解决方案。
3.根据权利要求2所述的方法,其特征在于,在指令异常状态列表中查找所述异常状 态对应的属性信息之后,所述方法还包括获取所述异常状态的异常类型或者异常等级;根据所述异常类型或者所述异常等级对所述异常状态进行相应的异常处理。
4.根据权利要求3所述的方法,其特征在于,根据所述异常类型或者所述异常等级对 所述异常状态进行相应的异常处理包括比较所述异常等级是否在预定等级的范围内,其中,当所述异常等级在所述预定等级的范围之内时,逐层返回到该异常等级对应的所述异 常状态进行所述异常处理,并显示所述异常状态对应的所述属性信息;当所述异常等级在所述预定等级的范围之外时,在预定时间内对该异常等级对应的异 常状态进行所述异常处理,该异常状态的属性信息在后台添加。
5.根据权利要求1所述的方法,其特征在于,在显示所述异常状态对应的所述属性信 息之前,所述方法还包括通过传输接口在日志文件中记录该异常状态的所述属性信息。
6.根据权利要求1或5所述的方法,其特征在于,提供一个用户界面读取并显示所述异 常状态对应的所述属性信息。
7.一种异常处理的装置,其特征在于,包括检测模块,用于检测到指令中的一个或多个异常状态;查找模块,用于在指令异常状态列表中查找所述异常状态对应的属性信息,所述指令 异常状态列表保存各个所述异常状态的所述属性信息,其中,所述属性信息包括异常编号、 异常类型、异常等级、异常消息和异常解决方案;显示模块,用于显示所述异常状态对应的所述属性信息。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括获取模块,用于获取所述异常状态的异常类型或者所述异常等级;处理模块,用于根据所述异常类型号或者所述异常等级对所述异常状态进行相应的异 常处理。
9.根据权利要求7所述的装置,其特征在于,所述处理模块包括比较模块,用于比较 所述异常等级是否在预定等级的范围内,其中,当所述异常等级在所述预定等级的范围之 内时,逐层返回到该异常等级对应的所述异常状态进行所述异常处理,并显示所述异常状 态对应的所述属性信息;当所述异常等级在所述预定等级的范围之外时,在预定时间内对 该异常等级对应的异常状态进行所述异常处理,该异常状态的属性信息在后台添加。
10.根据权利要求7所述的装置,其特征在于,所述装置还包括保存模块,用于通过传 输接口在日志文件中记录该异常状态对应的所述属性信息。2
11.根据权利要求7所述的装置,其特征在于,所述显示模块包括显示界面,用于提供 一个用户界面读取并显示所述异常状态对应的所述属性信息。
全文摘要
本发明公开了一种异常处理的方法及装置,其中,该方法包括检测到指令中的一个或多个异常状态;在指令异常状态列表中查找异常状态对应的属性信息,指令异常状态列表保存各个异常状态的属性信息;显示异常状态对应的属性信息。通过本发明,能够快速准确地定位到发生异常的地点,提高异常处理的正确性和处理效率,便于软件代码维护,提高用户的易用性和软件健壮性。
文档编号G06F9/44GK101937372SQ201010267778
公开日2011年1月5日 申请日期2010年8月30日 优先权日2010年8月30日
发明者付德平, 吴玲, 李海峰 申请人:北京数码大方科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1