一种异常处理方法及装置与流程

文档序号:14574537发布日期:2018-06-02 01:10阅读:149来源:国知局
一种异常处理方法及装置与流程

本发明涉及计算机技术领域,尤其涉及一种异常处理方法及装置。



背景技术:

随着计算机技术的发展,终端上可以安装各种各样的应用,为人们的工作、生活及学习带来了极大便利。然而,用户在使用各种应用时,经常会出现应用出现异常中断的现象,从而给用户带来了极大不便。

为了解决该问题,在应用异常中断时,需要用户主动记录应用异常的相关内容,以发送给研发人员来解决。在实践中发现,由于用户并不是应用开发的专业人员,所记录的异常内容不够准确,导致异常的解决效率较低。



技术实现要素:

本发明实施例提供了一种异常处理方法及装置,可以及时上报异常数据,提高异常的解决效率。

本发明实施例提供了一种异常处理方法,包括:

当检测到异常时,利用回调函数确定产生所述异常的异常数据;所述异常数据包括产生所述异常的函数调用关系链、函数名以及代码行号;

生成包括所述异常数据的上报消息,并将所述上报消息发送给服务器,以使所述服务器对所述异常数据进行归类分析。

相应地,本发明实施例还提供了一种异常处理装置,包括:

第一确定模块,用于当检测到异常时,利用回调函数确定产生所述异常的异常数据;所述异常数据包括产生所述异常的函数调用关系链、函数名以及代码行号;

生成模块,用于在所述确定模块确定产生所述异常的异常数据时,生成包括所述异常数据的上报消息;

发送模块,用于将所述生成模块生成的所述上报消息发送给服务器,以使所述服务器对所述异常数据进行归类分析。

本发明实施例中,当检测到异常时,利用回调函数确定产生异常的异常数据,异常数据包括产生异常的函数调用关系链、函数名以及代码行号,生成包括异常数据的上报消息,并将上报消息发送给服务器,以使服务器对异常数据进行归类分析。可见,本发明实施例可以及时上报异常数据,提高异常的解决效率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的一种异常处理系统的流程示意图;

图2是本发明实施例提供的异常处理系统的架构示意图;

图3是本发明实施例提供的一种异常处理方法的流程示意图;

图4是本发明实施例提供的另一种异常处理方法的流程示意图;

图5是本发明实施例提供的一种异常处理装置的结构示意图;

图6是本发明实施例提供的终端的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例公开了一种异常处理方法及装置,可以及时上报异常数据,提高异常的解决效率。以下分别详细说明。

请参阅图1及图2,图1是本发明实施例提供的一种异常处理系统的流程示意图,图2是本发明实施例提供的一种异常处理系统的架构示意图;图1所示的步骤可以由终端和服务器来执行,可选的,终端和服务器可以采用图2所示的应用异常处理系统的架构,客户端层可以包括客户端、运营和产品优化人员,客户端可以安装在终端中以检测终端中安装的各类应用产生的异常,执行异常处理方法的相关步骤;服务器层可以包括数据接收服务器和归类分析模块,数据层可以包括数据库模块,可选的,服务器层和数据层的相关模块可以放置在至少一个服务器中。

本发明实施例中,客户端是指运行在安卓Android或苹果IOS系统里的软件应用;数据接收服务器用于处理客户端上报过来的各类数据,并将接收的异常数据存入数据库(Data Base,DB)模块;归类分析模块用于对DB模块的异常数据进行分析,并将分析的归类排序结果展示给运营和产品优化人员;数据库DB模块用于存储客户端上报的异常数据;运营和产品优化人员通过访问分析归类模块,获取异常数据,并根据异常数据的重要和紧急程度决定对应用的异常进行解决。

本发明实施例中,如图1所示,图2所示的异常处理系统可以执行以下操作:

S101:客户端检测终端是否产生异常。

S102:客户端在检测到异常时,利用回调函数确定产生该异常的异常数据。

本发明实施例中,利用回调函数确定产生异常的异常数据可以包括函数名、函数调用关系、函数调用顺序以及代码行号等。

S103:客户端对该异常数据进行消息摘要算法MD5运算,获得该异常数据的MD5值。

S104:客户端利用MD5值对该异常数据进行统计,获得统计结果。

S105:客户端生成包括该异常数据的上报消息。

本发明实施例中,上报消息中的异常数据除包括函数名、函数调用关系、函数调用顺序以及代码行号等外,可以包括函数名、函数调用关系、函数调用顺序以及代码行号进行MD5运算的MD5值;以及产生异常的终端的设备信息、操作系统、操作系统版本信息;以及产生异常的应用名称、应用版本信息等,本发明实施例不做限定。

S106:客户端确定终端当前接入的网络状况。

S107:在终端当前接入的网络状况满足预设网络条件时,客户端将包括该异常数据的上报消息发送给数据接收服务器。

本发明实施例中,预设网络条件可以为移动互联网或者无线局域网(Wireless Local Area Networks,WLAN),即当终端当前接入的网络为移动互联网或者WLAN时,确定终端当前接入的网络状况满足预设网络条件;或者为了节省终端的移动流量,预设网络条件可以为:当终端当前接入的网络为WLAN时,确定终端当前接入的网络状况满足预设网络条件。

S108:数据接收服务器接收该上报消息,并向客户端返回接收成功消息。

S109:数据接收服务器将该上报消息携带的异常数据发送至数据库模块进行保存。

S110:客户端接收该接收成功消息时,删除本地保存的该异常数据。

S111:运营和产品优化人员向归类分析模块发送查询请求。

S112:归类分析模块响应该查询请求,向数据库模块发送异常数据读取请求。

S113:数据库模块响应该异常数据读取请求,将异常数据发送给归类分析模块。

S114:归类分析模块接收该异常数据,并对该异常数据进行归类排序后返回给运营和产品优化人员。

本发明实施例中,归类分析模块接收到异常数据,并对该异常数据进行归类排序时,可以根据异常数据中的MD5值进行归类排序,即MD5值相同的异常数据归为一类,作为一类异常即一类BUG;可选的,归类分析模块也可以将产生异常的终端的设备信息相同的归为一类,也可以根据操作系统、操作系统版本信息、产生异常的应用名称、应用版本信息等进行多维度的归类,本发明实施例不做限定。

S115:当运营和产品优化人员接收到归类分析模块返回的异常数据及分类排序结果时,可以根据异常的重要和紧急程度来确定处理异常的优先次序。

本发明实施例中,归类分析模块也可以根据上述异常数据的内容统计每类异常的产生次数,例如,根据MD5值判断已存在该异常时,将该异常的产生次数加1;根据MD5值判断应用不存在该异常时,将该异常作为新的一类异常保存。可见,该实施方式,通过统计各类异常的类别及产生次数,可以方便运营和产品优化人员决定处理异常的优先次序。

本发明实施例中,客户端在检测到异常时,可以利用回调函数确定产生该异常的异常数据,并主动将异常数据打包成上报消息,发送给数据接收服务器,由数据接收服务器接收该上报消息,并将异常数据写入数据库中;当产品和运营优化人员向归类分析模块发送查询请求时,归类分析模块可以响应该查询请求,从数据库模块中读取异常数据,并对该异常数据进行分类排序后返回给产品和运营优化人员。可见,本发明实施例所述的异常处理系统可以及时上报异常数据,提高异常的解决效率。

请参阅图3,图3是本发明实施例提供的一种异常处理方法的流程示意图,其中,图3所描述的异常处理方法主要是从终端一侧进行描述的。本发明实施例中,终端可以包括智能手机、平板电脑、智能可穿戴设备等设备。本发明实施例中,图3所示的异常处理方法可以包括以下步骤:

S201:终端在检测到异常时,利用回调函数确定产生异常的异常数据。

S202:终端生成包括该异常数据的上报消息,并将该上报消息发送给服务器,以使服务器对该异常数据进行归类分析。

本发明施例中,当应用在被使用过程中,突然出现中断、关闭或者卡住的异常情况时,终端可以通过所安装的回调函数进行堆栈回溯,确定产生该异常的异常数据。其中,回调函数是一个通过指针调用的函数,如果把函数的指针作为参数传递给另一个函数,当这个指针被用来调用其所指的函数时,便称为回调函数。异常数据包括产生异常的函数调用关系链、函数名以及代码行号等。举例来说,终端检测到应用突然中断时,安装指针,调用该指针所指的函数,进行堆栈回溯,从堆栈的返回地址中确定异常数据的函数调用关系、调用顺序、代码行号以及函数名。

可选的,终端还可以对异常数据进行消息摘要算法MD5运算,获得该异常数据的MD5值,利用MD5值对该异常数据进行统计,获得统计结果,相应地,上报消息中可以携带有该异常数据的MD5值和统计结果。

其中,MD5是用以提供消息完整性保护的一种散列函数,MD5以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过一系列的处理,输出由4个32位分组组成,将这四个32位分组级联后生成一个128位散列值;MD5应用于对一段信息(字节串)产生信息摘要,以防止被篡改。举例来说,终端可以获取应用产生异常的函数调用关系、调用顺序、代码行号以及函数名,并对所述函数调用关系、调用顺序、代码行号以及函数名的调用序列进行MD5,从而得到MD5值。

本发明实施例中,终端可以在检测到异常时,利用回调函数确定产生异常的异常数据,生成包括异常数据的上报消息,并将上报消息发送给服务器,以使服务器对异常数据进行归类分析,从而,避免了用户主动上报,而是自动上报异常数据,从而可以提高异常的解决效率。

请参阅图4,图4是本发明实施例提供的另一种异常处理方法的流程示意图,其中,图4所描述的异常处理方法主要是从终端一侧进行描述的。本发明实施例中,终端可以包括智能手机、平板电脑、智能可穿戴设备等设备。本发明实施例中,图4所示的异常处理方法可以包括以下步骤:

S301:终端在检测到异常时,利用回调函数确定产生所述异常的异常数据。

本发明实施例中,终端可以通过回调函数确定产生异常的异常数据,该异常数据包括函数调用链、函数、代码行号,其中,函数调用链包括了函数的调用关系和调用顺序。

S302:终端对异常数据进行消息摘要算法MD5运算,获得该异常数据的MD5值。

本发明实施例中,终端通过安装回调函数确定产生异常的函数调用关系、函数调用顺序、函数和代码行号,并对该函数调用关系、函数调用顺序、函数和代码行号进行MD5运算,获取MD5值。

S303:终端根据MD5值判断是否已存在该异常;若已存在该异常,则执行步骤S304;若还没有存在该异常,则直接执行步骤S305。

S304:终端将该异常的产生次数加1;

S305:终端生成包括该异常数据的上报消息,并将该上报消息发送给服务器,以使服务器对该异常数据进行归类分析。

相应地,步骤S305中的上报消息携带该异常的产生次数。

S306:终端删除本地保存的该异常数据。

本发明实施例中,终端可以在获取到异常数据之后,对异常数据进行MD5运算,获得该异常数据的MD5值,根据该MD5值来统计异常的产生次数。可选的,终端还可以根据产生异常的应用版本号、终端设备、操作系统版本信息等来统计相关异常的产生次数,本发明实施例不做限定。

本发明实施例中,终端可以在检测到异常时,利用回调函数确定产生异常的异常数据,并对异常数据进行MD5运算,获得异常数据的MD5值,根据MD5值该异常的产生次数进行统计,并将统计结果和异常数据一起上报给服务器,从而,可以方便用户及时确定异常的出现频次和重要程度,以及时对产品进行优化。

请参阅图5,图5是本发明实施例提供的一种异常处理装置的结构示意图,图5所示的装置可以设置到终端中,该终端可以为智能手机、平板电脑、智能可穿戴设备等设备。其中,图5所示的异常处理装置40可以包括第一确定模块41、生成模块42、发送模块43。

第一确定模块41,用于当检测到异常时,利用回调函数确定产生异常的异常数据;该异常数据包括产生异常的函数调用关系链、函数名以及代码行号。

生成模块42,用于在第一确定模块41确定产生异常的异常数据时,生成包括异常数据的上报消息。

发送模块43,用于并将生成模块42生成的上报消息发送给服务器,以使服务器对异常数据进行归类分析。

可选的,所述装置,还可以包括:运算模块44、统计模块45、第二确定模块46、删除模块47。

运算模块44,用于对第一确定模块41确定的异常数据进行消息摘要算法MD5运算,获得该异常数据的MD5值。

运算模块44,还用于根据运算模块44获得的MD5值,判断已存在所述异常时,将所述异常的产生次数加1。

统计模块45,用于利用运算模块44获得的MD5值对异常数据进行统计,获得统计结果;其中,上报消息中携带有该异常数据的MD5值和统计结果。

第二确定模块46,用于在生成模块42生成包括所述异常数据的上报消息之后,确定当前接入的网络状况,并在所述第二确定模块46确定的网络状况满足预设网络条件时,触发所述发送模块执行将所述上报消息发送给服务器,以使所述服务器对所述异常数据进行归类分析的操作。

本发明实施例中,第一确定模块41在检测到异常时,可以利用回调函数确定产生异常的异常数据,生成模块42可以生成包括异常数据的上报消息,并触发发送模块43将上报消息发送给服务器,以使服务器对异常数据进行归类分析,可见,本发明实施例可以及时上报异常数据,以便于提高异常的解决效率。

请参阅图6,图6是本发明实施例提供的终端的结构示意图,本发明实施例所述的终端的相关技术细节可以参照图1至图5所示的发明实施例内容,这里不再详述。该终端可以包括:处理器501、通信接口502、存储器503和通信总线504,其中,通信总线504用于实现这些组件之间的通信连接,通信接口502用于实现各机器之间的通信连接。存储器503可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器503可选的还可以是至少一个位于远离前述处理器501的存储装置。其中,处理器501可以结合图5所示的异常处理装置,存储器503中存储一组程序代码,且处理器501调用存储器503中存储的程序代码,用于执行以下操作:

当检测到异常时,利用回调函数确定产生异常的异常数据;异常数据包括产生该异常的函数调用关系链、函数名以及代码行号;

生成包括异常数据的上报消息,并将该上报消息发送给服务器,以使服务器对该异常数据进行归类分析。

本发明实施例中,处理器501调用存储器503中存储的程序代码,还可以执行以下操作:

对异常数据进行消息摘要算法MD5运算,获得异常数据的MD5值,利用MD5值对该异常数据进行统计,获得统计结果;其中,上报消息中携带有该异常数据的MD5值和统计结果。

本发明实施例中,处理器501调用存储器503中存储的程序代码,利用MD5值对异常数据进行统计,获得统计结果,可以具体执行以下操作:

根据MD5值判断已存在异常时,将该异常的产生次数加1。

本发明实施例中,处理器501调用存储器503中存储的程序代码,生成包括该异常数据的上报消息之后,以及将该上报消息发送给服务器,以使服务器对异常数据进行归类分析之前,还可以执行以下操作:

确定当前接入的网络状况,在网络状况满足预设网络条件时,执行将上报消息发送给服务器,以使服务器对该异常数据进行归类分析的操作。

本发明实施例中,处理器501调用存储器503中存储的程序代码,将上报消息发送给服务器,以使服务器对该异常数据进行归类分析之后,还可以执行以下操作:

删除本地保存的异常数据。

在本发明实施例中,终端在检测到异常时,利用回调函数确定产生异常的异常数据,生成包括异常数据的上报消息,并将上报消息发送给服务器,以使服务器对异常数据进行归类分析,可见,本发明实施例可以及时上报异常数据,以便于提高异常的解决效率。

以上对本发明实施例所提供的异常处理方法及装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

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