CN109766205A - 异常处理方法、装置、计算机设备和存储介质 - Google Patents
异常处理方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN109766205A CN109766205A CN201811553943.1A CN201811553943A CN109766205A CN 109766205 A CN109766205 A CN 109766205A CN 201811553943 A CN201811553943 A CN 201811553943A CN 109766205 A CN109766205 A CN 109766205A
- Authority
- CN
- China
- Prior art keywords
- anomalous event
- tolerant
- fault
- type
- application program
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本申请涉及一种异常处理方法、装置、计算机设备和存储介质。所述方法包括:在捕获到应用程序运行中的异常事件时,识别异常事件的错误类型;根据异常事件的错误类型确定对应的容错程序,调用容错程序以进行容错处理。采用本方法对捕获到的异常事件的错误类型进行识别,根据识别出的异常事件的错误类型确定与错误类型相对应的容错程序,调用的容错程序进行容错处理,避免由于异常事件继续执行导致应用程序闪退。
Description
技术领域
本申请涉及应用程序技术领域,特别是涉及一种异常处理方法、装置、计算机设备和存储介质。
背景技术
随着互联网技术及移动终端技术的发展,移动终端能够通过各种不同的应用程序实现诸如购物、导航、搜索及观看视频等功能,但在移动终端运行应用程序时,常常会出现应用程序运行异常无法正常使用的情况。
然而,目前解决上述问题的方式一般是通过记录发生异常的相关信息,并上传至服务器,技术人员分析原因后,对造成异常的缘由进行修改,通过发布补丁或发布新版本的方式解决异常,但在新版本发布之前,用户在使用该应用程序时依然可能会出现该异常。
发明内容
基于此,有必要针对上述技术问题,提供一种异常处理方法、装置、计算机设备和存储介质。
一种异常处理方法,方法包括:
在捕获到应用程序运行中的异常事件时,识别异常事件的错误类型;
根据异常事件的错误类型确定对应的容错程序,
调用容错程序以进行容错处理。
在其中一个实施例中,异常事件的错误类型包括:数据类型错误、调用未定义函数及访问数组越界。
在其中一个实施例中,若异常事件的错误类型为数据类型错误,则调用容错程序以进行容错处理的过程包括:
识别发生数据类型错误的字段及应用程序对应的接口数据类型;
根据发生数据类型错误的字段及应用程序对应的接口数据类型生成数据获取请求,数据获取请求用于指示服务器重新发送与应用程序对应的接口数据类型相匹配的替换数据;
将数据获取请求上传至服务器;
获取服务器根据数据获取请求发送的替换数据,并将发生数据类型错误的字段替换为替换数据。
在其中一个实施例中,若异常事件的错误类型为调用未定义函数,则调用容错程序以进行容错处理的过程包括:
读取应用程序发生异常事件时访问页面的预设标记参数;
根据预设标记参数执行页面跳转,将应用程序由访问页面跳转至与预设标记参数对应的Web页面。
在其中一个实施例中,若异常事件的错误类型为访问数组越界,则调用容错程序以进行容错处理的过程包括:
检查应用程序当前所要访问的数组中的元素下标;
将异常事件中的访问数组元素下标修改为数组的元素下标的上界;
根据修改后的访问数组元素下标访问数组。
在其中一个实施例中,异常处理方法还包括:
根据应用程序当前所要访问的数组及异常事件中的访问数组元素下标,生成访问命令获取请求,访问命令获取请求用于指示服务器重新下发访问数组元素正确的访问命令;
上传访问命令获取请求至服务器;
获取并执行服务器依据访问命令获取请求反馈的访问命令,访问命令用于指示应用程序访问正确的数组元素。
在其中一个实施例中,异常处理方法还包括:
根据异常事件的错误类型及所调用的对应的容错程序生成错误日志;
将错误日志上传至服务器。
一种闪退问题处理装置,装置包括:
识别模块,用于在捕获到应用程序运行中的异常事件时,识别异常事件的错误类型;
确定模块,用于根据异常事件的错误类型确定对应的容错程序
容错处理模块,用于调用容错程序以进行容错处理。
一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现以下步骤:
在捕获到应用程序运行中的异常事件时,识别异常事件的错误类型;
根据异常事件的错误类型确定对应的容错程序,
调用容错程序以进行容错处理。
一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
在捕获到应用程序运行中的异常事件时,识别异常事件的错误类型;
根据异常事件的错误类型确定对应的容错程序,
调用容错程序以进行容错处理。
上述异常处理方法、装置、计算机设备和存储介质,当捕获到运行中的应用程序的异常事件时,对该异常事件的错误类型进行识别,根据识别出的异常事件的错误类型确定与错误类型相对应的容错程序,调用容错程序进行容错处理,避免由于异常事件继续执行导致应用程序闪退。
附图说明
图1为一个实施例中异常处理方法的应用环境图;
图2为一个实施例中异常处理方法的流程示意图;
图3为一个实施例中错误类型为数据类型错误时进行容错处理的流程示意图;
图4为另一个实施例中错误类型为调用未定义函数时进行容错处理的流程示意图;
图5为一个实施例中错误类型为访问数组越界时进行容错处理流程示意图;
图6为另一个实施例中错误类型为访问数组越界时进行容错处理流程示意图;
图7为另一个实施例中异常处理方法的流程示意图;
图8为一个实施例中异常处理装置的结构框图;
图9为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的异常处理方法,可以应用于如图1所示的应用环境中。终端102运行中的应用程序出现异常事件时,对捕获到的异常事件的错误类型进行识别,根据错误类型调用对应的容错程序进行容错处理,避免异常事件继续执行导致应用程序闪退。其中,终端102通过网络与服务器104通过网络进行通信。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种异常处理方法,以该方法应用于图1中的终端为例进行说明,包括以下步骤210~230:
步骤210,在捕获到应用程序运行中的异常事件时,识别异常事件的错误类型。
其中,异常事件是指可能会导致应用程序发生闪退的错误事件,闪退为应用程序的一种保护机制,当发生异常事件时,在应用程序重复尝试执行多次仍无法正常运行后,应用程序将会启动保护机制,自动关闭并退出应用程序,即闪退。
在一个实施例中,可以在应用程序中预先嵌入一个异常处理插件,也可以是用户主动安装的异常处理插件,异常处理插件能够对应用程序进行监听,当发现应用程序发生异常事件时,能够自动捕获该异常事件,识别异常事件的错误类型,等待后续处理。
在一些实施例中,异常处理插件可以是针对不同应用程序进行定制化设计的,也可以是通用插件,能够应用于多个应用程序。应用程序对捕获到的异常事件进行识别,判断该异常事件的错误类型,根据错误类型的不同,需要采用不同的应对策略对闪退问题进行处理。
步骤220,根据异常事件的错误类型确定对应的容错程序。
根据异常事件的错误类型,选择用于解决对应错误类型的容错程序,容错程序用于防止应用程序因该异常事件继续运行而导致闪退,保证在通过发布新版本或补丁以彻底解决该异常事件产生原因之前,能够有效避免应用程序因该异常事件闪退。
在其中一个实施例中,异常事件的错误类型包括:数据类型错误、调用未定义函数及访问数组越界。
应用程序在与服务器进行通信交互时发生的数据对接,应用程序定义了接口的数据类型,需要服务器发送同样数据类型的数据才能正常执行,但在运行中可能会发生数据的数据类型与接口的数据类型不匹配,导致无法正常执行,此时即为发生了异常事件,如果数据与接口在多次对接失败后,应用程序由于无法继续正常运行,将会造成闪退;应用程序在调用函数时,若调用了未定义的函数,由于该函数未被定义过,与任何操作或指令均无映射关系,因此将无法正常执行,即发生了异常事件,若不进行处理,则将会因为应用程序无法继续正常运行而导致闪退;访问数组越界是指应用程序当前接收到的访问指令中要访问的数组元素下标与要访问的数组中的任何一个数组元素都不匹配,因此无法访问该数组,由于无法访问该数组,导致访问指令无法正常执行,即发生了异常事件,应用程序无法继续正常运行,将会导致应用程序闪退。
在一个实施例中,数据库中存储有由预设的分别用于解决数据类型错误、调用未定义函数、访问数组越界的容错程序构成的容错程序集,在识别异常事件的错误类型后,从预设的容错程序集中确定与当前异常事件错误类型对应的容错程序。
步骤230,调用所述容错程序以进行容错处理。
调用针对发生的异常事件的容错程序,能够对原本会引发应用程序异常的程序或操作进行处理,使得在异常事件发生之后,应用程序在容错程序的干预下消除异常,避免应用程序闪退,进而使得用户能够继续进行操作,不影响用户的使用。
应用程序一般会在发生异常事件后,重复尝试执行该事件,当尝试次数达到预设的保护机制启动次数时,应用程序将会发生闪退,在一些实施例中,本发明在应用程序第一次发生异常且捕获到该异常事件时,根据识别出的异常事件的错误类型调用对应的容错程序进行容错处理,使得应用程序能够继续正常运行,不会多次重复执行该异常导致闪退。
上述异常处理方法,当运行中的应用程序出现异常事件时,捕获该异常事件,对该异常事件的错误类型进行识别,根据识别出的异常事件的错误类型调用与错误类型相对应的容错程序进行容错处理,避免由于异常事件继续执行导致应用程序闪退。
在其中一个实施例中,如图3所示,若异常事件的错误类型为数据类型错误,则调用容错程序以进行容错处理的过程包括步骤241~244:
步骤241,识别发生数据类型错误的字段及应用程序对应的接口数据类型。
应用程序在识别出异常事件的错误类型为数据类型错误后,识别数据类型发生错误的字段及应用程序原本用于对接该字段的接口的数据类型,明确错误字段和正确的数据类型后,与服务器进行通信,以获得正确的数据。
步骤242,根据发生数据类型错误的字段及应用程序对应的接口数据类型生成数据获取请求,数据获取请求用于指示服务器重新发送与应用程序对应的接口数据类型相匹配的替换数据。
根据识别到的发送错误的字段以及应用程序原本用于对接相应字段的接口的数据类型,生成数据获取请求。
步骤243,将数据获取请求上传至服务器。
服务器接收到数据获取请求,解析数据获取请求,获得应用程序能够正确对接的数据类型,以及错误的字段等信息,服务器根据获取到的信息生成替换数据,发送至应用程序,以替换错误的字段。
步骤244,获取服务器根据数据获取请求发送的替换数据,并将发生数据类型错误的字段替换为替换数据。
应用程序接收到服务器发送的替换数据后,将原本的错误字段替换为数据类型与应用程序的接口相匹配的替换数据,使得应用程序能够正常进行数据对接,使得应用程序能够正常运行,避免因运行异常导致闪退。
在其中一个实施例中,如图4所示,若异常事件的错误类型为调用未定义函数,则调用容错程序以进行容错处理的过程包括步骤251~252:
步骤251,读取应用程序发生异常事件时访问页面的预设标记参数。
在开发应用程序时会对每个页面进行标记分类,每个页面均有预设标记参数,分类可以是对于不同的页面各自预设一种标记参数,也可以将多种页面分为一类,使用一种标记参数,在一些实施例中,购物结算页面为一类,登录页面为一类,其他页面均分为一类,每一类对应一种预设标记参数。预设标记参数与Web端的页面存在对应关系。
当识别到异常事件的错误类型为调用未定义函数时,异常处理插件将会读取发生调用未定义函数错误时访问页面的预设标记参数。
步骤252,根据预设标记参数执行页面跳转,将应用程序由访问页面跳转至与预设标记参数对应的Web页面。
在一些实施例中,根据预设标记参数执行页面跳转可以通过调用预设的容错函数,并将预设标记参数与容错函数进行拼接,容错函数为通用函数,但需要拼接预设标记参数方能构成一个完整可执行的函数,由于发生调用未定义函数的原因可能是在调用时,函数的名称或函数中的某个参数错误,因此难以判断其原本想要调用的函数,无法调取到正确的函数,应用程序无法继续执行,因此在本实施例中,通过一种能够适用于所有调用未定义函数错误的方式,保证用户能够继续执行用户的目标操作。拼接容错函数与预设标记参数,得到拼接函数,拼接函数为完整可运行的函数,并且拼接函数与web端的页面存在对应关系。
执行与web端的页面存在对应关系的拼接函数,能够跳转到与拼接函数中的预设标记参数相对应的web页面,例如,发送调用未定义函数错误时访问的是登录页面,读取到的预设标记参数与web端的登录页面对应,执行拼接了登录页面预设标记参数的拼接函数,应用程序将跳转至web端的登录页面,由于应用程序如果继续执行未定义的函数,将会发生错误,因此跳转至web端页面,用户能够在web端上继续操作。
在其中一个实施例中,如图5所示,若异常事件的错误类型为访问数组越界,则调用容错程序以进行容错处理的过程包括步骤261~263:
步骤261,检查应用程序当前所要访问的数组中的元素下标。
检查应用程序当前要访问的数组中包含哪些元素,具体地是检查数组中元素的下标,从而能够确定元素下标的上界值。
步骤262,将异常事件中的访问数组元素下标修改为数组的元素下标的上界。
异常事件为访问数组越界,因此访问数组元素下标大于所要访问的数组中的数组元素下标的上界,确定数组元素下标的上界值后,将异常事件中的访问数组元素下标修改为数组的数组元素下标的上界,即将访问目标修改为访问数组中下标最大的数组元素,保证访问数组能够正常执行。
步骤263,根据修改后的访问数组元素下标访问数组。
修改后的访问数组元素下标为所要访问数组中的数组元素下标的上界,根据修改后的访问数组元素下标进行访问,解决访问数组越界问题,使得应用程序能够正常访问数组,避免应用程序闪退。
在一个实施例中,应用程序当前所要访问的数组中包括元素A[0]~A[k](k取整数),则该数组的元素下标包括0~k,应用程序要访问数组元素A[j](j>k),即发生了访问数组越界的异常事件,容错程序将会检查确定数组中的元素下标包括0~k,进而确定数组中的元素下标的上界为k,然后将应用程序要访问数组元素A[j]修改为访问元素A[k],应用程序将能够正常访问该数组。
在其中一个实施例中,如图6所示,异常处理方法还包括步骤264~266:
步骤264,根据应用程序当前所要访问的数组及异常事件中的访问数组元素下标,生成访问命令获取请求,访问命令获取请求用于指示服务器重新下发访问数组元素正确的访问命令。
由于应用程序实际要访问的数组并不一定是数组中下标最大的数组元素,修改为访问数组中下标最大的数组元素,仅能够保证应用程序能够正常运行不至于闪退,因此还需要获取实际要访问的数组元素的下标,具体地,根据应用程序当前所要访问的数组及异常事件中的访问数组元素下标,生成用于请求服务器下发正确的访问数组元素下标的访问命令获取请求,异常事件中的访问数组元素下标是用于使服务器能够定位错误原因,快速确定实际要访问的数组元素。
步骤265,上传访问命令获取请求至服务器。
将访问命令获取请求上传至服务器,服务器在接收到访问命令获取请求后,根据异常事件中的访问数组元素下标定位到错误原因,结合应用程序当前所要访问的数组,确定应用程序实际要访问的数组元素,生成访问数组元素下标正确的访问命令,发送至应用程序。
步骤266,获取并执行服务器依据访问命令获取请求反馈的访问命令,访问命令用于指示应用程序访问正确的数组元素。
应用程序获取到访问命令后,根据访问命令执行正确的访问,在保证应用程序不闪退的同时,访问正确的数组元素。
在其中一个实施例中,如图7所示,异常处理方法还包括步骤270~280:
步骤270,根据异常事件的错误类型及所调用的对应的容错程序生成错误日志。
根据异常事件的错误类型调用对应的容错程序进行容错处理,仅能暂时避免异常事件本次不发生闪退,并不能从根源上避免异常事件的发生,因此需要根据异常事件的错误类型及所调用的容错程序,生成错误日志,以便开发人员确定错误原因,并解决该错误。
步骤280,将错误日志上传至服务器。
将错误日志上传至服务器,反馈至开发人员端,开发人员能够进行分析,找到产生异常事件错误的原因,并开发出解决办法,在新版本或补丁中发布,进而从根源上解决错误问题。
应该理解的是,虽然图2-7的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-7中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图8所示,提供了一种异常处理装置,包括:识别模块310、确定模块320及容错处理模块330,其中:
识别模块310,用于在捕获到应用程序运行中的异常事件时,识别异常事件的错误类型;
确定模块320,用于根据异常事件的错误类型确定对应的容错程序
容错处理模块330,用于调用容错程序以进行容错处理。
在其中一个实施例中,若异常事件的错误类型为数据类型错误,容错处理模块包括:数据类型识别模块、数据获取请求生成模块、数据获取请求上传模块及替换数据获取模块,其中:
数据类型识别模块,用于识别发生数据类型错误的字段及应用程序对应的接口数据类型;
数据获取请求生成模块,用于根据发生数据类型错误的字段及应用程序对应的接口数据类型生成数据获取请求,数据获取请求用于指示服务器重新发送与应用程序对应的接口数据类型相匹配的替换数据;
数据获取请求上传模块,用于将数据获取请求上传至服务器;
替换数据获取模块,用于获取服务器根据数据获取请求发送的替换数据,并将发生数据类型错误的字段替换为替换数据。
在其中一个实施例中,若异常事件的错误类型为调用未定义函数,容错处理模块包括:预设标记参数读取模块、页面跳转模块,其中:
预设标记参数读取模块,用于读取应用程序发生异常事件时访问页面的预设标记参数;
页面跳转模块,根据预设标记参数执行页面跳转,将应用程序由访问页面跳转至与预设标记参数对应的Web页面。
在其中一个实施例中,若异常事件的错误类型为访问数组越界,容错处理模块包括:数组检查模块、修改模块及访问模块,其中:
数组检查模块,用于检查应用程序当前所要访问的数组中的元素下标;
修改模块,用于将异常事件中的访问数组元素下标修改为数组的元素下标的上界;
访问模块,用于根据修改后的访问数组元素下标访问数组。
在其中一个实施例中,若异常事件的错误类型为访问数组越界,容错处理模块还包括:访问命令获取请求生成模块,访问命令获取请求上传模块及访问命令执行模块,其中:
访问命令获取请求生成模块,用于根据应用程序当前所要访问的数组及异常事件中的访问数组元素下标,生成访问命令获取请求,访问命令获取请求用于指示服务器重新下发访问数组元素正确的访问命令;
访问命令获取请求上传模块,用于上传访问命令获取请求至服务器;
访问命令执行模块,用于获取并执行服务器依据访问命令获取请求反馈的访问命令,访问命令用于指示应用程序访问正确的数组元素。
在其中一个实施例中,闪退问题处理装置还包括:错误日志生成模块,错误日志反馈模块,其中:
错误日志生成模块,用于根据异常事件的错误类型及所调用的对应的容错程序生成错误日志;
错误日志反馈模块,用于将错误日志上传至服务器。
关于闪退问题处理装置的具体限定可以参见上文中对于异常处理方法的限定,在此不再赘述。上述闪退问题处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图9所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种异常处理方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
步骤210,在捕获到应用程序运行中的异常事件时,识别异常事件的错误类型;
步骤220,根据异常事件的错误类型确定对应的容错程序;
步骤230,调用所述容错程序以进行容错处理。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
步骤241,识别发生数据类型错误的字段及应用程序对应的接口数据类型;
步骤242,根据发生数据类型错误的字段及应用程序对应的接口数据类型生成数据获取请求,数据获取请求用于指示服务器重新发送与应用程序对应的接口数据类型相匹配的替换数据;
步骤243,将数据获取请求上传至服务器;
步骤244,获取服务器根据数据获取请求发送的替换数据,并将发生数据类型错误的字段替换为替换数据。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
步骤251,读取应用程序发生异常事件时访问页面的预设标记参数;
步骤252,根据预设标记参数执行页面跳转,将应用程序由访问页面跳转至与预设标记参数对应的Web页面。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
步骤261,检查应用程序当前所要访问的数组中的元素下标;
步骤262,将异常事件中的访问数组元素下标修改为数组的元素下标的上界;
步骤263,根据修改后的访问数组元素下标访问数组。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
步骤264,根据应用程序当前所要访问的数组及异常事件中的访问数组元素下标,生成访问命令获取请求,访问命令获取请求用于指示服务器重新下发访问数组元素正确的访问命令;
步骤265,上传访问命令获取请求至服务器;
步骤266,获取并执行服务器依据访问命令获取请求反馈的访问命令,访问命令用于指示应用程序访问正确的数组元素。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
步骤270,根据异常事件的错误类型及所调用的对应的容错程序生成错误日志;
步骤280,将错误日志上传至服务器。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
步骤210,在捕获到应用程序运行中的异常事件时,识别异常事件的错误类型;
步骤220,根据异常事件的错误类型确定对应的容错程序;
步骤230,调用所述容错程序以进行容错处理。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
步骤241,识别发生数据类型错误的字段及应用程序对应的接口数据类型;
步骤242,根据发生数据类型错误的字段及应用程序对应的接口数据类型生成数据获取请求,数据获取请求用于指示服务器重新发送与应用程序对应的接口数据类型相匹配的替换数据;
步骤243,将数据获取请求上传至服务器;
步骤244,获取服务器根据数据获取请求发送的替换数据,并将发生数据类型错误的字段替换为替换数据。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
步骤251,读取应用程序发生异常事件时访问页面的预设标记参数;
步骤252,根据预设标记参数执行页面跳转,将应用程序由访问页面跳转至与预设标记参数对应的Web页面。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
步骤261,检查应用程序当前所要访问的数组中的元素下标;
步骤262,将异常事件中的访问数组元素下标修改为数组的元素下标的上界;
步骤263,根据修改后的访问数组元素下标访问数组。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
步骤264,根据应用程序当前所要访问的数组及异常事件中的访问数组元素下标,生成访问命令获取请求,访问命令获取请求用于指示服务器重新下发访问数组元素正确的访问命令;
步骤265,上传访问命令获取请求至服务器;
步骤266,获取并执行服务器依据访问命令获取请求反馈的访问命令,访问命令用于指示应用程序访问正确的数组元素。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
步骤270,根据异常事件的错误类型及所调用的对应的容错程序生成错误日志;
步骤280,将错误日志上传至服务器。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种异常处理方法,其特征在于,包括:
在捕获到应用程序运行中的异常事件时,识别所述异常事件的错误类型;
根据所述异常事件的错误类型确定对应的容错程序;
调用所述容错程序以进行容错处理。
2.根据权利要求1所述的异常处理方法,其特征在于,所述异常事件的错误类型包括:数据类型错误、调用未定义函数及访问数组越界。
3.根据权利要求2所述的异常处理方法,其特征在于,若所述异常事件的错误类型为数据类型错误,则调用所述容错程序以进行容错处理的过程包括:
识别发生数据类型错误的字段及所述应用程序对应的接口数据类型;
根据所述发生数据类型错误的字段及所述应用程序对应的接口数据类型生成数据获取请求,所述数据获取请求用于指示服务器重新发送与所述应用程序对应的接口数据类型相匹配的替换数据;
将所述数据获取请求上传至服务器;
获取所述服务器根据所述数据获取请求发送的替换数据,并将所述发生数据类型错误的字段替换为所述替换数据。
4.根据权利要求2所述的异常处理方法,其特征在于,若所述异常事件的错误类型为调用未定义函数,则调用所述容错程序以进行容错处理的过程包括:
读取所述应用程序发生所述异常事件时访问页面的预设标记参数;
根据所述预设标记参数执行页面跳转,将所述应用程序由所述访问页面跳转至与所述预设标记参数对应的Web页面。
5.根据权利要求2所述的异常处理方法,其特征在于,若所述异常事件的错误类型为访问数组越界,则调用所述容错程序以进行容错处理的过程包括:
检查所述应用程序当前所要访问的数组中的元素下标;
将所述异常事件中的访问数组元素下标修改为所述数组的元素下标的上界;
根据修改后的访问数组元素下标访问所述数组。
6.根据权利要求5所述的异常处理方法,其特征在于,还包括:
根据所述应用程序当前所要访问的数组及所述异常事件中的访问数组元素下标,生成访问命令获取请求,所述访问命令获取请求用于指示服务器重新下发访问数组元素正确的访问命令;
上传所述访问命令获取请求至服务器;
获取并执行所述服务器依据所述访问命令获取请求反馈的访问命令,所述访问命令用于指示所述应用程序访问正确的数组元素。
7.根据权利要求1至6任一项所述的异常处理方法,其特征在于,还包括:
根据所述异常事件的错误类型及所调用的对应的容错程序生成错误日志;
将所述错误日志上传至服务器。
8.一种异常处理装置,其特征在于,所述装置包括:
识别模块,用于在捕获到应用程序运行中的异常事件时,识别所述异常事件的错误类型;
确定模块,用于根据所述异常事件的错误类型确定对应的容错程序
容错处理模块,用于调用所述容错程序以进行容错处理。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811553943.1A CN109766205A (zh) | 2018-12-19 | 2018-12-19 | 异常处理方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811553943.1A CN109766205A (zh) | 2018-12-19 | 2018-12-19 | 异常处理方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109766205A true CN109766205A (zh) | 2019-05-17 |
Family
ID=66450252
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811553943.1A Pending CN109766205A (zh) | 2018-12-19 | 2018-12-19 | 异常处理方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109766205A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111290872A (zh) * | 2020-01-15 | 2020-06-16 | 上海高仙自动化科技发展有限公司 | 应用程序及应用程序的异常处理方法 |
CN111737040A (zh) * | 2020-06-22 | 2020-10-02 | 北京字节跳动网络技术有限公司 | 程序代码修复方法及装置 |
CN111782504A (zh) * | 2020-05-20 | 2020-10-16 | 车智互联(北京)科技有限公司 | 一种应用程序异常的诊断方法、移动终端及可读存储介质 |
CN113626234A (zh) * | 2021-06-30 | 2021-11-09 | 济南浪潮数据技术有限公司 | 一种异常处理方法、装置、电子设备及可读存储介质 |
CN113742122A (zh) * | 2021-08-19 | 2021-12-03 | 深圳Tcl新技术有限公司 | 异常处理方法、装置、存储介质及电子设备 |
CN113900851A (zh) * | 2021-10-29 | 2022-01-07 | 广州品唯软件有限公司 | 一种安卓应用软件控制方法及装置 |
CN115672756A (zh) * | 2022-11-15 | 2023-02-03 | 艾信智慧医疗科技发展(苏州)有限公司 | 一种医用箱式物流分拣系统异常情况处理方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120131392A1 (en) * | 2010-11-24 | 2012-05-24 | Oliver Bendig | Systems and methods providing an exception buffer to facilitate processing of event handler errors |
CN107391295A (zh) * | 2017-08-11 | 2017-11-24 | 东软集团股份有限公司 | 应用程序异常的处理方法及装置 |
CN107632901A (zh) * | 2017-09-25 | 2018-01-26 | 青岛海信移动通信技术股份有限公司 | 一种应用程序运行异常的自修复方法及装置 |
CN108334415A (zh) * | 2017-01-20 | 2018-07-27 | 百度在线网络技术(北京)有限公司 | 一种容错处理方法、装置、终端及存储介质 |
CN108491320A (zh) * | 2018-03-05 | 2018-09-04 | 平安普惠企业管理有限公司 | 应用程序的异常分析方法、装置、计算机设备和存储介质 |
-
2018
- 2018-12-19 CN CN201811553943.1A patent/CN109766205A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120131392A1 (en) * | 2010-11-24 | 2012-05-24 | Oliver Bendig | Systems and methods providing an exception buffer to facilitate processing of event handler errors |
CN108334415A (zh) * | 2017-01-20 | 2018-07-27 | 百度在线网络技术(北京)有限公司 | 一种容错处理方法、装置、终端及存储介质 |
CN107391295A (zh) * | 2017-08-11 | 2017-11-24 | 东软集团股份有限公司 | 应用程序异常的处理方法及装置 |
CN107632901A (zh) * | 2017-09-25 | 2018-01-26 | 青岛海信移动通信技术股份有限公司 | 一种应用程序运行异常的自修复方法及装置 |
CN108491320A (zh) * | 2018-03-05 | 2018-09-04 | 平安普惠企业管理有限公司 | 应用程序的异常分析方法、装置、计算机设备和存储介质 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111290872A (zh) * | 2020-01-15 | 2020-06-16 | 上海高仙自动化科技发展有限公司 | 应用程序及应用程序的异常处理方法 |
CN111782504A (zh) * | 2020-05-20 | 2020-10-16 | 车智互联(北京)科技有限公司 | 一种应用程序异常的诊断方法、移动终端及可读存储介质 |
CN111782504B (zh) * | 2020-05-20 | 2023-12-01 | 车智互联(北京)科技有限公司 | 一种应用程序异常的诊断方法、移动终端及可读存储介质 |
CN111737040A (zh) * | 2020-06-22 | 2020-10-02 | 北京字节跳动网络技术有限公司 | 程序代码修复方法及装置 |
CN111737040B (zh) * | 2020-06-22 | 2024-05-28 | 北京字节跳动网络技术有限公司 | 程序代码修复方法及装置 |
CN113626234A (zh) * | 2021-06-30 | 2021-11-09 | 济南浪潮数据技术有限公司 | 一种异常处理方法、装置、电子设备及可读存储介质 |
CN113742122A (zh) * | 2021-08-19 | 2021-12-03 | 深圳Tcl新技术有限公司 | 异常处理方法、装置、存储介质及电子设备 |
CN113900851A (zh) * | 2021-10-29 | 2022-01-07 | 广州品唯软件有限公司 | 一种安卓应用软件控制方法及装置 |
CN115672756A (zh) * | 2022-11-15 | 2023-02-03 | 艾信智慧医疗科技发展(苏州)有限公司 | 一种医用箱式物流分拣系统异常情况处理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109766205A (zh) | 异常处理方法、装置、计算机设备和存储介质 | |
CN106844217B (zh) | 对应用的控件进行埋点的方法及装置、可读存储介质 | |
CN107239389B (zh) | 一种在混合app中确定用户操作记录的方法及装置 | |
US11245601B2 (en) | Automated integrated test system and method thereof | |
CN108491320A (zh) | 应用程序的异常分析方法、装置、计算机设备和存储介质 | |
CN110290212A (zh) | 服务调用记录方法、装置、计算机设备和存储介质 | |
CN110704312B (zh) | 压力测试的方法、装置、计算机设备和存储介质 | |
CN107526676B (zh) | 一种跨系统测试方法及装置 | |
CN108418797B (zh) | 网页访问方法、装置、计算机设备和存储介质 | |
CN111414309B (zh) | 应用程序的自动化测试方法、计算机设备和存储介质 | |
CN106201811A (zh) | 应用程序的故障恢复方法和终端 | |
CN111198797B (zh) | 操作监控方法及装置、操作分析方法及装置 | |
CN105164648A (zh) | 使用仅我的代码的JavaScript调试 | |
CN109783355A (zh) | 页面元素获取方法、系统、计算机设备及可读存储介质 | |
EP4375866A1 (en) | Security control method and apparatus for integrated circuit, storage medium, and electronic device | |
CN116107781A (zh) | 日志追踪方法、装置、电子设备、及计算机程序产品 | |
CN109857642A (zh) | 一种ui自动化脚本的阻塞式调试方法及调试工具 | |
CN108459952B (zh) | 程序异常的处理方法及系统 | |
CN111159033B (zh) | 一种软件测试方法及装置 | |
CN110633213B (zh) | 单元测试方法、装置、计算机设备和存储介质 | |
CN110362294A (zh) | 开发任务执行方法、装置、电子设备及存储介质 | |
CN113468058B (zh) | 软件即服务平台的回归测试方法、装置及电子设备 | |
CN108959879A (zh) | 应用程序的数据获取方法、装置、电子设备及服务器 | |
CN108776601A (zh) | 安卓h5页面的加载方法、装置、设备及存储介质 | |
CN110704218A (zh) | 数据处理方法、装置、计算机设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190517 |
|
RJ01 | Rejection of invention patent application after publication |