电子装置、Web应用开发中异常处理方法及存储介质与流程

文档序号:15215864发布日期:2018-08-21 16:51阅读:156来源:国知局

本发明涉及web应用开发领域,尤其涉及一种电子装置、web应用开发中异常处理方法及存储介质。



背景技术:

在web应用开发中,一般都采用多层架构,即软件结构采用分层的思想,这种多层架构的软件必然会使软件的耦合性降低,内聚性加强,但是多层架构会增加软件开发的重复性工作,同时多层架构也会使软件的应用变得相对复杂,进而可能会产生一些意想不到的错误和异常。

目前,为了解决在web应用开发中由于采用多层架构而产生的错误和异常,通常是根据软件结构的多层架构,以及技术分层的原理在每一层(例如,控制层、业务层、数据访问层等)均设计一类异常,而根据技术分层原理设计的异常,部分不属于runtimeexception(运行时异常),而是检查异常(即非运行时异常)。在调用程序的过程中,若在某一层检测到检查异常时,需要中断程序操作并定义复杂的返回类型通知用户,或者,在调用程序的过程中,通过在每层截获下层的非运行异常并将所截获的非运行异常进行重新包装之后再抛出。这两种异常处理方式都加大了程序的复杂度,导致程序代码量增大,容易出错且不易维护。



技术实现要素:

有鉴于此,本发明提出一种电子装置、web应用开发中异常处理方法及存储介质,能够简化web程序代码、且使web程序易维护。

首先,为实现上述目的,本发明提出一种电子装置,所述电子装置包括存储器、及与所述存储器连接的处理器,所述处理器用于执行所述存储器上存储的web应用开发中异常处理程序,所述web应用开发中异常处理程序被所述处理器执行时实现如下步骤:

a1、预先在运行时异常类别下定义业务类异常和程序类异常;

a2、在web应用开发中的各逻辑层获取所述业务类异常和所述程序类异常,并将所获取的除顶层逻辑以外的其他逻辑层对应的所述业务类异常和所述程序类异常均向上抛出;

a3、在所述web应用开发的技术边界处或所述顶层集中捕获所述顶层以外的层抛出的所述业务类异常和所述程序类异常,并根据所捕获的异常类型进行异常处理。

进一步地,所述web应用开发中异常处理程序被所述处理器执行时还实现如下步骤:

将所获取的顶层的所述业务类异常和所述程序类异常在所述顶层进行异常处理。

进一步地,在所述步骤a3中,根据所捕获的异常类型进行异常处理包括:

若捕获的异常为业务类异常,则根据异常以及异常产生的原因,生成对应的带有错误码的提示信息,提示用户进行相应的操作;

若捕获的异常为程序类异常,则生成异常通用的错误提示信息,并将对应的异常发送至预先确定的运维邮箱。

进一步地,所述技术边界处包括web应用的调用链路中的各个接口。

进一步地,所述顶层为控制层或执行层,所述除顶层以外的层包括业务层和数据访问层。

此外,为实现上述目的,本发明还提供一种种web应用开发中异常处理方法,该方法包括如下步骤:

s1、预先在运行时异常类别下定义业务类异常和程序类异常;

s2、在web应用开发中的各逻辑层获取所述业务类异常和所述程序类异常,并将所获取的除顶层逻辑层以外的其他逻辑层对应的所述业务类异常和所述程序类异常均向上抛出;

s3、在所述web应用开发的技术边界处或所述顶层集中捕获所述顶层以外的层抛出的所述业务类异常和所述程序类异常,并根据所捕获的异常类型进行异常处理。

进一步地,所述方法还包括如下步骤:

将所获取的顶层的所述业务类异常和所述程序类异常在所述顶层进行异常处理。

进一步地,在所述步骤s3中,根据所捕获的异常类型进行异常处理包括:

若捕获的异常为业务类异常,则根据异常以及异常产生的原因,生成对应的带有错误码的提示信息,提示用户进行相应的操作;

若捕获的异常为程序类异常,则生成异常通用的错误提示信息,并将对应的异常发送至预先确定的运维邮箱。

进一步地,所述技术边界处包括web应用的调用链路中的各个接口。

进一步地,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有web应用开发中异常处理程序,所述web应用开发中异常处理程序可被至少一个处理器执行,以使所述至少一个处理器执行如上述的web应用开发中异常处理方法的步骤。

相较于现有技术中解决web程序异常时需要在每层设计一类异常或者在每层截获下层异常进行重新包装之后再抛出,本发明所提出的电子装置、web应用开发中异常处理方法及存储介质,只需预先在运行时异常类别下定义业务类异常和程序类异常,并在web应用开发中的各层获取所述业务类异常和所述程序类异常,并将所获取的除顶层以外的层对应的所述业务类异常和所述程序类异常均向上抛出;在所述web应用开发的技术边界处或所述顶层集中捕获除所述顶层以外的层抛出的所述业务类异常和所述程序类异常,并根据所捕获的异常类型进行相应的处理,简化了web程序代码、且使web程序易维护。

附图说明

图1是本发明提出的电子装置一可选的硬件架构的示意图;

图2是本发明电子装置较佳实施例中的web应用开发异常处理程序的程序模块示意图;

图3是本发明web应用开发异常处理方法较佳实施例的实施流程示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

需要说明的是,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。

参阅图1所示,是本发明提出的电子装置一可选的硬件架构示意图。本实施例中,电子装置10可包括,但不仅限于,可通过通信总线14相互通信连接存储器11、处理器12、网络接口13。需要指出的是,图1仅示出了具有组件11-13的电子装置10,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。

其中,存储器11至少包括一种类型的计算机可读存储介质,计算机可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器11可以是电子装置10的内部存储单元,例如电子装置10的硬盘或内存。在另一些实施例中,存储器11也可以是电子装置10的外包存储设备,例如电子装置10上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。当然,存储器11还可以既包括电子装置10的内部存储单元也包括其外包存储设备。本实施例中,存储器11通常用于存储安装于电子装置10的操作系统和各类应用软件,例如web应用开发中异常处理程序等。此外,存储器11还可以用于暂时地存储已经输出或者将要输出的各类数据。

处理器12在一些实施例中可以是中央处理器(centralprocessingunit,cpu)、控制器、微控制器、微处理器、或其他数据处理芯片。处理器12通常用于控制电子装置10的总体操作。本实施例中,处理器12用于运行存储器11中存储的程序代码或者处理数据,例如运行的web应用开发中异常处理程序等。

网络接口13可包括无线网络接口或有线网络接口,网络接口13通常用于在电子装置10与其他电子设备之间建立通信连接。

通信总线14用于实现这些组件之间的连接通信。

可选地,电子装置10还可以包括用户接口,用户接口可以包括显示器(display)、输入单元比如键盘等。进一步地,用户接口还可以包括标准的有线接口、无线接口。

在一些实施例之后,显示器可以是led显示器、液晶显示器、触控式液晶显示器以及oled触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在电子装置中处理的信息以及用于显示可视化的用户界面。

存储器101中存储的web应用开发中异常处理程序被处理器102执行,以实现本申请各个实施例的web应用开发中异常处理方法的步骤。

在一实施例中,web应用开发中异常处理程序被处理器102执行时实现如下操作:

a1.预先在运行时异常类别下定义业务类异常和程序类异常;

a2.在web应用开发中的各逻辑层获取所述业务类异常和所述程序类异常,并将所获取的除顶层逻辑层以外的其他逻辑层对应的所述业务类异常和所述程序类异常均向上抛出;

a3.在所述web应用开发的技术边界处或所述顶层集中捕获顶层以外的层抛出的所述业务类异常和所述程序类异常,并根据所捕获的异常类型进行异常处理。

在本实施例中,通过预先在运行时异常类别下定义业务类异常和程序类异常,其中,将由于违反某种业务逻辑,导致在运行web应用程序的过程中某种特定的操作无法进行而产生的异常定义为运行时异常类别下的业务类异常,通常这类异常经常携带错误码等信息,将web应用程序本身存在的系统级错误(例如程序因为数据传递而产生的异常导致系统无法正常运行等)定义为运行时异常类别下的程序类异常,通常这类异常是可以避免的异常,且这类异常一旦发生需要专业人员进行解决,并在web应用开发中的各逻辑层(在本实施例中,所述逻辑层包括控制层、业务层和数据访问层),获取所述业务类异常和所述程序类异常,将所获取的除顶层逻辑层(为了描述方便后文均记为顶层)以外的其他逻辑层(同样为了描述方便后文均较顶层以为的层)对应的所述业务类异常和所述程序类异常均向上抛出,其相对于现有技术中根据每层的技术内容定义异常,并在发现异常时,要么需要定义复杂的返回类型,要么需要在每层截获下层的异常并重新包装来说,本发明在业务层和数据访问层只抛出异常,而不进行异常的处理,从而可以简化整个程序代码。

进一步地,在所述web应用开发的技术边界处(指的是web应用的调用链路中各个接口处),通常web应用的调用链路为:javascript→java→数据库,在该调用链路中,技术边界为,例如javascript程序与java程序的接口处,以及java程序与数据库的接口处,集中捕获除顶层以外的层,例如业务层和数据访问层,向上抛出的所述业务类异常和所述程序类异常,并根据所捕获的异常类型进行相应的处理,或者,在所述顶层(例如控制层或执行层)集中捕获除所述顶层以外的层抛出的所述业务类异常和所述程序类异常,并根据所捕获的异常类型进行相应的处理。

可以理解的是,在整个web应用的调用链路中,均可以通过上述方式进行异常的处理,例如,在存储数据以及调用数据库的公共方法中,均可以通过与java程序约定一种异常标注的方式,然后采用上述方式将进行了异常标准的异常向上抛出,并在技术边界处统一截获进行处理。

另外,在上述实施例中,还包括将所获取的顶层的所述业务类异常和所述程序类异常在所述顶层进行相应的处理,在本实施例中,若捕获到的是业务类异常,则根据异常以及异常产生的原因,生成对应的带有错误码的提示信息,若捕获到的是程序类异常,则生成异常通用的错误提示信息(例如,操作失败了,或者运行错误等),并将对应的异常发送至预先确定的运维邮箱。

进一步需要说明的是,如下面图2所示的实施例,web应用开发异常处理程序依据其各部分所实现的功能不同,可用具有相同功能的虚拟的程序模块进行描述。

请参阅图2所示,是本发明电子装置较佳实施例中的web应用开发异常处理程序的程序模块示意图。如图2所示,web应用开发异常处理程序依据其各部分所实现的功能不同可以分别用预定义模块201、向上抛出模块202、以及捕获模块203进行描述,其中,模块201-203所实现的功能与上述事实例的web应用开发中异常处理程序相同,示例性地,其中,

预定义模块201用于在运行时异常类别下定义业务类异常和程序类异常;

向上抛出模块202用于在web应用开发中的各逻辑层获取所述业务类异常和所述程序类异常,并将所获取的除顶层逻辑层以外的其他逻辑层对应的所述业务类异常和所述程序类异常均向上抛出;

捕获模块203用于在所述web应用开发的技术边界处或所述顶层集中捕获顶层以外的层抛出的所述业务类异常和所述程序类异常,并根据所捕获的异常类型进行异常处理。

此外,本发明还提出一种web应用开发中异常处理方法,如图3所示,为本发明web应用开发中异常处理方法较佳实施例的实施流程示意图。由图3可知,本发明的web应用开发中异常处理方法包括步骤s301-s303。

步骤s301.预先在运行时异常类别下定义业务类异常和程序类异常;

步骤s302.在web应用开发中的各逻辑层获取所述业务类异常和所述程序类异常,并将所获取的除顶层逻辑以外的其他逻辑层对应的所述业务类异常和所述程序类异常均向上抛出;

步骤s303.在所述web应用开发的技术边界处或所述顶层集中捕获除顶层以外的层抛出的所述业务类异常和所述程序类异常,并根据所捕获的异常类型进行异常处理。

在本实施例中,通过预先在运行时异常类别下定义业务类异常和程序类异常,其中,将由于违反某种业务逻辑,导致在运行web应用程序的过程中某种特定的操作无法进行而产生的异常定义为运行时异常类别下的业务类异常,通常这类异常经常携带错误码等信息,将web应用程序本身存在的系统级错误(例如程序因为数据传递而产生的异常导致系统无法正常运行等)定义为运行时异常类别下的程序类异常,通常这类异常是可以避免的异常,且这类异常一旦发生需要专业人员进行解决,并在web应用开发中的各层,在本实施例中为控制层、业务层和数据访问层,获取所述业务类异常和所述程序类异常,并将所获取的除顶层以外的层对应所述业务类异常和所述程序类异常均向上抛出,其相对于现有技术中根据每层的技术内容定义异常,并在发现异常时,要么需要定义复杂的返回类型,要么需要在每层截获下层的异常并重新包装来说,本发明在业务层和数据访问层只抛出异常,而不进行异常的处理,从而可以简化整个程序代码。

进一步地,在所述web应用开发的技术边界处(指的是web应用的调用链路中各个接口处),通常web应用的调用链路为:javascript→java→数据库,在该调用链路中,技术边界为,例如javascript程序与java程序的接口处,以及java程序与数据库的接口处,集中捕获除顶层以外的层,例如业务层和数据访问层,向上抛出的所述业务类异常和所述程序类异常,并根据所捕获的异常类型进行相应的处理,或者,在所述顶层(例如控制层或执行层)集中捕获除所述顶层以外的层抛出的所述业务类异常和所述程序类异常,并根据所捕获的异常类型进行相应的处理。

可以理解的是,在整个web应用的调用链路中,均可以通过上述方式进行异常的处理,例如,在存储数据以及调用数据库的公共方法中,均可以通过与java程序约定一种异常标注的方式,然后采用上述方式将进行了异常标准的异常向上抛出,并在技术边界处统一截获进行处理。

另外,在上述实施例中,还包括将所获取的顶层的所述业务类异常和所述程序类异常在所述顶层进行相应的处理,在本实施例中,若捕获到的是业务类异常,则根据异常以及异常产生的原因,生成对应的带有错误码的提示信息,若捕获到的是程序类异常,则生成异常通用的错误提示信息(例如,操作失败了,或者运行错误等),并将对应的异常发送至预先确定的运维邮箱。

此外,本发明还提出一种计算机可读存储介质,所述计算机可读存储介质存储有web应用开发中异常处理程序,所web应用开发中异常处理程序可被至少一个处理器执行,以使所述至少一个处理器执行如下步骤:

在运行时异常类别下定义业务类异常和程序类异常;

在web应用开发中的各层获取所述业务类异常和所述程序类异常,并将所获取的除顶层以外的层对应的所述业务类异常和所述程序类异常均向上抛出;

在所述web应用开发的技术边界处或所述顶层集中捕获所述顶层以外的层抛出的所述业务类异常和所述程序类异常,并根据所捕获的异常类型进行相应的处理。

进一步地,所述所web应用开发中异常处理程序可被至少一个处理器执行,以使所述至少一个处理器还执行如下步骤:

将所获取的顶层的所述业务类异常和所述程序类异常在所述顶层进行相应的处理。

需要说明的是,本实施例所提出的计算机可读存储介质与上述实施例中的电子装置以及web应用开发中异常处理方法的具体实施过程相同,在此不再累述。

通过上述各实施例可知,本发明所提出的电子装置、web应用开发中异常处理方法及计算机可读存储介质,预先在运行时异常类别下定义业务类异常和程序类异常;

在web应用开发中的各层获取所述业务类异常和所述程序类异常,并将所获取的除顶层以外的层对应的所述业务类异常和所述程序类异常均向上抛出;在所述web应用开发的技术边界处或所述顶层集中捕获除所述顶层以外的层抛出的所述业务类异常和所述程序类异常,并根据所捕获的异常类型进行相应的处理。简化了web程序代码、且使web程序且易维护。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

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