一种异常处理方法、装置、电子设备和存储介质与流程

文档序号:18256989发布日期:2019-07-24 10:19阅读:151来源:国知局
一种异常处理方法、装置、电子设备和存储介质与流程

本发明实施例涉及网络技术领域,特别涉及一种异常处理方法、装置、电子设备和存储介质。



背景技术:

目前,在前后端交互的过程中,后端通过创建交互式网页应用的网页开发技术(AJAX)传输一种轻量级的数据交换格式(JavaScript Object Notation,JSON)字符串给前端,前端把JSON字符串重新变成JSON类型的对象,并通过解构赋值便利地获得各个需要的字段值。在这个过程中,若试图获取一个对象中的某个字段的值时,并且,这个对象因缺失并被赋值为空值(NULL)时,则会触发预设错误类型的异常,使程序退出。

发明人发现现有技术中至少存在如下问题:在现有技术中,可与后端提供接口的接口人进行协商解决,但前端与后端的接口人会为了类似的问题进行反复沟通,增加了沟通成本,并且会耽误开发的进度;若由前端添加判断,当赋值对象为NULL时,则对该赋值对象赋默认值,若JSON返回值嵌套的层级越深,则需要判断的赋值对象越多,反复的判断赋值对象是否为NULL,增加了代码的冗余,也使代码更加复杂。



技术实现要素:

本发明实施方式的目的在于提供一种异常处理方法、装置、电子设备和非易失性存储介质,用于解决因变量缺失并被赋值为NULL而触发预设错误类型,进而导致程序异常退出的问题。

为解决上述技术问题,本发明的实施方式提供了一种异常处理方法,包括以下步骤:获取前端报错的内容;根据报错的内容确定报错的类型为预设错误类型,从报错的内容中获取预设错误类型对应的变量;将预设错误类型对应的变量赋值为预设值。

本发明的实施方式还提供了一种异常处理装置,包括:获取模块,判断模块和赋值模块;获取模块,用于获取前端报错的内容;判断模块,用于根据报错的内容确定报错的类型为预设错误类型,从报错的内容中获取预设错误类型对应的变量;赋值模块,用于将预设错误类型对应的变量赋值为预设值。

本发明的实施方式还提供了一种电子设备,包括存储器和处理器,存储器存储计算机程序,处理器运行程序时执行:获取前端报错的内容;根据报错的内容确定报错的类型为预设错误类型,从报错的内容中获取预设错误类型对应的变量;将预设错误类型对应的变量赋值为预设值。

本发明的实施方式还提供了一种非易失性存储介质,用于存储计算机可读程序,所述计算机可读程序用于供计算机执行如上所述的异常处理方法。

本发明实施方式相对于现有技术而言,主要区别及其效果在于:通过将变量赋值为预设值,使得在获取该变量的值时,不会因为将该变量赋值为NULL而导致程序异常退出,减少了沟通成本和代码冗余,降低了代码的复杂度,提高了代码的运行效率。

另外,预设值具有可迭代性。

该方式中,通过将预设错误类型对应的变量赋值为具有可迭代性的预设值,使得在代码执行的过程中,能够获取到该变量的下一级变量对应的值,进而获取所需要的值,简化了代码执行的过程,降低了代码的复杂度。

另外,预设值为空对象或空数组。

另外,将预设错误类型对应的变量赋值为预设值,包括:通过系统的错误接口函数对应的回调函数,将预设错误类型对应的变量赋值为预设值。

该方式中,通过系统的错误接口函数对应的回调函数,来处理预设错误类型对应的变量,无需在各个存在预设错误类型的代码处再增加代码,减少了代码的冗余度,提高了代码的运行效率。

另外,获取前端报错的内容,包括:通过系统的错误接口函数对应的回调函数获取报错的内容。

另外,根据报错的内容确定报错的类型为预设错误类型,从报错的内容中获取预设错误类型对应的变量,包括:通过系统的错误接口函数对应的回调函数,从报错的内容中获取报错的类型的指示信息;确定指示信息指示的报错类型为预设错误类型,从报错的内容中获取预设错误类型对应的变量。

该方式中,通过获取到的报错的类型的指示信息,来确定该报错类型为预设错误类型,进而获取对应的变量,简化了获取预设错误类型对应的变量的过程,使得在操作系统级别的处理过程中,就能够对后端上报的、所有具有预设错误类型的变量进行容错处理,减少了对各个具有预设错误类型的变量的手动判断,降低了代码的冗余,提高了代码的运行效率。

附图说明

一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。

图1是根据本发明第一实施方式中的异常处理方法流程方框图;

图2是根据本发明第二实施方式中的异常处理方法流程方框图;

图3是根据本发明第三实施方式中的异常处理装置的结构示意图;

图4是根据本发明第四实施方式中的电子设备的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。

本发明的第一实施方式涉及一种异常处理方法。通过将变量赋值为预设值,使得在获取该变量的值时,不会因为将该变量赋值为NULL而导致程序异常退出,减少了沟通成本和代码冗余,降低了代码的复杂度,提高了代码的运行效率。

下面对本实施方式中的异常处理方法的实现细节进行具体的说明,以下内容仅为方便理解本方案的实现细节,并非实施本方案的必须。

图1所示为本实施方式中的异常处理方法的流程图,应用于后端,该方法可包括如下步骤。

在步骤101中,获取前端报错的内容。

在一个具体实现中,前端上报错误信息给后端,后端接收到该错误信息。其中,前端为一个软件系统中直接和用户交互的模块,例如,一个网站的网页,该网页运行于个人计算机(personal computer,PC)端或移动端上,或,一个可执行程序中的人机交互界面;后端为该软件系统中控制该软件的输出的处理模块,例如,与网站的网页相对应的、运行在服务器端的后台程序代码处理模块,或,在一个可执行程序中,当用户通过人机交互界面触发一个操作命令时,对应处理该操作命令的后台程序代码。

在步骤102中,根据报错的内容确定报错的类型为预设错误类型,从报错的内容中获取预设错误类型对应的变量。

在一个具体实现中,前端上报的错误信息有很多种,各个错误信息对应的预设错误类型也对应有很多种,例如,赋值类型错误,资源加载错误,脚本文件异常等;其中的赋值类型错误为在对某个变量进行赋值时,该变量与所要赋的值的类型不相符。后端在接收到前端上报的错误信息时,会判断该错误信息是属于哪种错误类型,若确定该错误信息的报错类型为赋值类型错误,则从报错信息的内容中获取赋值类型错误对应的变量,例如,错误信息的内容为“无法预知的类型错误:无法找到‘level1’的定义”,或,“Uncaught TypeError:Cannot read property'level1'of null”,则确定该错误对应的变量名称为“level1”,表示变量“level1”是一个空值(NULL),即该变量“level1”没有对应的定义。

在步骤103中,将预设错误类型对应的变量赋值为预设值。

其中,预设值具有可迭代性,预设值为空对象或空数组。

需要说明的是,对象包含一系列非排序的名称或值对(pair),一个对象以{开始,并以}结束,并且每个名称或值对之间使用“:”进行分割,其中的空对象即为一个不包含非排序的名称或值对的对象,例如:空对象M{};数组(array)是一个值(value)的集合,一个数组以[开始,并以]结束,并且数组成员之间使用“,”进行分割,其中的空数组表示该数组中没有值,例如,空数组N[]。

在一个具体实现中,将预设错误类型对应的变量赋值为一个具有可迭代性的空对象或空数组,当确定一个变量是预设错误类型对应的变量时,将该变量赋值为一个具有可迭代性的空对象或空数组,表示该程序代码可越过该变量,获取该变量的下一级变量对应的值,进而获取所需要的值。以下面一段代码为例:

使用解构赋值的方法来获得最终的变量的值,其中的解构赋值是一个Javascript的表达式,该表达式使得可以将值从数组,或,将属性从对象中提取到不同的变量中。具体代码实现如下:let{level1:{level2:{params1}}}=res;如果在这个过程中,变量“level2”被判断为预设错误类型,则会将该变量“level2”赋值为一个具有可迭代性的空对象“M{}”,因该空对象“M{}”具有可迭代性,则在获取最终的变量的值的执行过程中,会直接获取变量“param1”的值,即直接获得值为“1”。

在本实施方式中,通过将变量赋值为预设值,使得在获取该变量的值时,不会因为将该变量赋值为NULL而导致程序异常退出,减少了沟通成本和代码冗余,降低了代码的复杂度,提高了代码的运行效率。

本发明的第二实施方式涉及一种异常处理方法。第二实施方式与第一实施方式大致相同,主要区别之处在于:通过系统的错误接口函数对应的回调函数,处理预设错误类型。

具体处理流程如图2所示,在本实施方式中,该异常处理方法应用于后端,该方法可包括如下步骤。

在步骤201中,通过系统的错误接口函数对应的回调函数获取报错的内容。

在一个具体实现中,通过windows系统的错误接口函数对应的回调函数获取报错的内容,例如:通过windows系统的错误事件接口(ErrorEvent)函数window.onerror(),对应的回调函数来获取对应的错误信息的内容,其中,该回调函数中包含有多个分支,根据不同的错误类型,执行不同的代码分支,进而获取对应的错误信息的内容。

例如,在回调函数中,若确定该错误类型为第一错误类型,则获取该第一错误类型对应的错误信息的内容;若确定该错误类型为第二错误类型,则获取该第二错误类型对应的错误信息的内容;依次类推,能够确定不同的错误类型所对应的错误信息的内容。

在步骤202中,通过系统的错误接口函数对应的回调函数,从报错的内容中获取报错的类型的指示信息。

在一个具体实现中,通过windows系统的函数window.onerror()对应的回调函数,从报错的内容中获取报错的类型的指示信息,该报错的类型可以是预设错误类型中的任一种,例如:赋值类型错误、资源加载错误,或,脚本文件异常等,根据不同的报错的类型,获得对应的指示信息,根据该指示信息,确定执行该回调函数中对应的代码分支。

在步骤203中,确定指示信息指示的报错类型为预设错误类型,从报错的内容中获取预设错误类型对应的变量。

在一个具体实现中,根据指示信息指示的报错类型,确定该错误类型为预设错误类型,则从该预设错误类型的内容中,获取到该预设错误类型对应的变量。例如,该报错的内容为“无法获知变量’level1’的类型”,则可确定该预设错误类型对应的变量为“level1”。

在步骤204中,通过系统的错误接口函数对应的回调函数,将预设错误类型对应的变量赋值为预设值。

在一个具体实现中,在windows系统的函数window.onerror()对应的回调函数中,执行错误类型为预设错误类型对应的程序分支,将该预设错误类型对应的变量“level1”赋值为一个预设值,该预设值是一个具有可迭代性的空对象,或,一个具有可迭代性的空数组。

例如,根据不同的情况做如下处理:如果该预设错误类型对应的变量是一个对象变量,则将该预设错误类型对应的变量“level1”赋值为一个预设的、具有可迭代性的空对象;如果该预设错误类型对应的变量是一个数组变量,则将该预设错误类型对应的变量“level1”赋值为一个预设的、具有可迭代性的空数组;否则,继续触发系统的报错流程,继续报错,并且该错误类型为“预设错误类型”。

在该实施方式中,通过系统的错误接口函数对应的回调函数,来处理预设错误类型,并将该预设错误类型对应的变量赋值为一个具有可迭代性的空数组或空对象,在系统级别的代码处理流程中,只需改变输入的、具有预设错误类型所对应的变量,就可对后端上报的、所有具有预设错误类型的变量进行容错处理,减少了对各个具有预设错误类型的变量的手动判断,降低了代码的冗余,提高了代码的运行效率。

上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。

本发明的第三实施方式涉及一种异常处理装置,该装置的具体实施可参见第一实施方式的相关描述,重复之处不再赘述。值得说明的是,本实施方式中的装置的具体实施也可参见第二实施方式的相关描述,但不局限于以上两个实施例,其他未说明的实施例也在本装置的保护范围之内。

如图3所示,该异常处理装置主要包括:获取模块301、判断模块302和赋值模块303;获取模块301用于获取前端报错的内容;判断模块302用于根据报错的内容确定报错的类型为预设错误类型,从报错的内容中获取预设错误类型对应的变量;赋值模块303用于将预设错误类型对应的变量赋值为预设值。

在一个例子中,预设值具有可迭代性。

在一个例子中,预设值为空对象或空数组。

在一个例子中,获取模块301,具体用于:通过系统的错误接口函数对应的回调函数获取报错的内容。

在一个例子中,判断模块302,具体用于:通过系统的错误接口函数对应的回调函数,从报错的内容中获取报错的类型的指示信息;确定指示信息指示的报错类型为预设错误类型,从报错的内容中获取预设错误类型对应的变量。

在一个例子中,赋值模块303,具体用于:通过系统的错误接口函数对应的回调函数,将预设错误类型对应的变量赋值为预设值。

不难发现,本实施方式为与第一或第二实施方式相对应的装置实施例,本实施方式可与第一或第二实施方式互相配合实施。第一或第二实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第一或第二实施方式中。

值得一提的是,本实施方式中所涉及到的各模块均为逻辑模块,在实际应用中,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现。此外,为了突出本发明的创新部分,本实施方式中并没有将与解决本发明所提出的技术问题关系不太密切的单元引入,但这并不表明本实施方式中不存在其它的单元。

本实施方式中,通过将变量赋值为预设值,使得在获取该变量的值时,不会因为将该变量赋值为NULL而导致程序异常退出,减少了沟通成本和代码冗余,降低了代码的复杂度,提高了代码的运行效率。

本发明的第四实施方式涉及一种电子设备,如图4所示,该电子设备包括:至少一个处理器401;以及,与至少一个处理器401通信连接的存储器402;其中,存储器402存储有可被至少一个处理器401执行的指令,指令被至少一个处理器401执行以实现:获取前端报错的内容;根据报错的内容确定报错的类型为预设错误类型,从报错的内容中获取预设错误类型对应的变量;将预设错误类型对应的变量赋值为预设值。

具体地,该电子设备包括:一个或多个处理器401以及存储器402,图4中以一个处理器401为例。处理器401、存储器402可以通过总线或者其他方式连接,图4中以通过总线连接为例。存储器402作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。处理器401通过运行存储在存储器402中的非易失性软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述的异常处理方法。

存储器402可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储选项列表等。此外,存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施方式中,存储器402可选包括相对于处理器401远程设置的存储器402,这些远程存储器402可以通过网络连接至外接设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

一个或者多个模块存储在存储器402中,当被一个或者多个处理器401执行时,执行上述任意方法实施方式中的异常处理方法。

上述产品可执行本申请实施例所提供的方法,具备执行方法相应的功能模块和有益效果,未在本实施例中详尽描述的技术细节,可参见本申请实施例所提供的方法。

本发明的第五实施方式涉及一种非易失性存储介质,用于存储计算机可读程序,所述计算机可读程序用于供计算机执行上述部分或全部的方法实施例。

即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。

本申请实施例公开了A1.一种异常处理方法,其特征在于,应用于前端设备,所述方法包括:

获取前端报错的内容;

根据所述报错的内容确定报错的类型为预设错误类型,从所述报错的内容中获取所述预设错误类型对应的变量;

将所述预设错误类型对应的变量赋值为预设值。

A2.根据A1所述的异常处理方法,其特征在于,所述预设值具有可迭代性。

A3.根据A2所述的异常处理方法,其特征在于,所述预设值为空对象或空数组。

A4.根据A1至A3中的任一项所述的异常处理方法,其特征在于,将所述预设错误类型对应的变量赋值为预设值,包括:

通过系统的错误接口函数对应的回调函数,将所述预设错误类型对应的变量赋值为预设值。

A5.根据A4所述的异常处理方法,其特征在于,获取前端报错的内容,包括:

通过系统的错误接口函数对应的回调函数获取所述报错的内容。

A6.根据A5所述的异常处理方法,其特征在于,根据所述报错的内容确定报错的类型为预设错误类型,从所述报错的内容中获取所述预设错误类型对应的变量,包括:

通过系统的错误接口函数对应的回调函数,从报错的内容中获取报错的类型的指示信息;

确定所述指示信息指示的报错类型为预设错误类型,从报错的内容中获取预设错误类型对应的变量。

本申请实施例公开了B1.一种异常处理装置,其特征在于,包括:获取模块,判断模块和赋值模块;

所述获取模块,用于获取前端报错的内容;

所述判断模块,用于根据所述报错的内容确定报错的类型为预设错误类型,从所述报错的内容中获取所述预设错误类型对应的变量;

所述赋值模块,用于将所述预设错误类型对应的变量赋值为预设值。

B2.根据B1所述的异常处理装置,其特征在于,所述预设值具有可迭代性。

B3.根据B2所述的异常处理装置,其特征在于,所述预设值为空对象或空数组。

B4.根据B1至B3中的任一项所述的异常处理装置,其特征在于,将所述预设错误类型对应的变量赋值为预设值,包括:

通过系统的错误接口函数对应的回调函数,将所述预设错误类型对应的变量赋值为预设值。

B5.根据B4所述的异常处理装置,其特征在于,获取前端报错的内容,包括:

通过系统的错误接口函数对应的回调函数获取所述报错的内容。

B6.根据B5所述的异常处理装置,其特征在于,根据所述报错的内容确定报错的类型为预设错误类型,从所述报错的内容中获取所述预设错误类型对应的变量,包括:

通过系统的错误接口函数对应的回调函数,从报错的内容中获取报错的类型的指示信息;

确定所述指示信息指示的报错类型为预设错误类型,从报错的内容中获取预设错误类型对应的变量。

本申请实施例公开了C1.一种电子设备,包括存储器和处理器,存储器存储计算机程序,处理器运行程序时执行:

获取前端报错的内容;

根据所述报错的内容确定报错的类型为预设错误类型,从所述报错的内容中获取所述预设错误类型对应的变量;

将所述预设错误类型对应的变量赋值为预设值。

C2.根据C1所述的电子设备,其特征在于,所述预设值具有可迭代性。

C3.根据C2所述的电子设备,其特征在于,所述预设值为空对象或空数组。

C4.根据C1至C3中的任一项所述的电子设备,其特征在于,将所述预设错误类型对应的变量赋值为预设值,包括:

通过系统的错误接口函数对应的回调函数,将所述预设错误类型对应的变量赋值为预设值。

C5.根据C4所述的电子设备,其特征在于,获取前端报错的内容,包括:

通过系统的错误接口函数对应的回调函数获取所述报错的内容。

C6.根据C5所述的电子设备,其特征在于,根据所述报错的内容确定报错的类型为预设错误类型,从所述报错的内容中获取所述预设错误类型对应的变量,包括:

通过系统的错误接口函数对应的回调函数,从报错的内容中获取报错的类型的指示信息;

确定所述指示信息指示的报错类型为预设错误类型,从报错的内容中获取预设错误类型对应的变量。

本申请实施例公开了D1.一种非易失性存储介质,用于存储计算机可读程序,所述计算机可读程序用于供计算机执行如A1至A6中任一项所述的异常处理方法。

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