一种异常处理方法、装置、设备及存储介质制造方法及图纸

技术编号:29011586 阅读:7 留言:0更新日期:2021-06-26 05:11
本公开提供了一种异常处理方法、装置、设备及存储介质,所述方法包括:如果确定基于JNI调用的java代码发生异常事件,则获取异常事件对应的java异常对象。然后,删除异常事件对应的异常标识。最终,基于JNI调用预置的java异常处理程序,利用java异常处理程序对java异常对象进行异常处理;java异常处理程序用于将异常对象对应的异常事件上报为java崩溃事件。本公开通过调用java异常处理程序对java代码发生的异常事件进行处理,将java代码发生的异常事件上报为java崩溃事件,降低因异常事件类型上报错误导致的聚合分析结果不准确问题的发生概率。概率。概率。

【技术实现步骤摘要】
一种异常处理方法、装置、设备及存储介质


[0001]本公开涉及数据处理领域,尤其涉及一种异常处理方法、装置、设备及存储介质。

技术介绍

[0002]java本地接口(Java Native Interface;JNI),是一种允许运行于java虚拟机JVM的java代码去调用本地代码,同时也允许本地代码去调用java代码的本地接口。
[0003]目前,当本地代码通过JNI去调用运行于JVM的java代码时,如果java代码发生异常事件,系统不会崩溃,而是返回至本地代码,如果此时再继续调用java代码,则会被认定为本地发生崩溃事件,即native崩溃,很容易导致后续开发人员基于认定的崩溃类型对本次异常事件进行聚合分析等处理的结果不准确。

技术实现思路

[0004]为了解决上述技术问题或者至少部分地解决上述技术问题,本公开提供了一种异常处理方法、装置、设备及存储介质,能够将java代码发生的异常事件上报为java崩溃事件,降低因异常事件类型上报错误导致的聚合分析结果不准确问题的发生概率。
[0005]第一方面,本公开提供了一种异常处理方法,所述方法包括:
[0006]如果确定基于java本地接口JNI调用的java代码发生异常事件,则获取所述异常事件对应的java异常对象;其中,所述java异常对象用于表征所述异常事件;
[0007]删除所述异常事件对应的异常标识;所述异常标识用于表征java虚拟机处于异常工作状态;
[0008]基于所述JNI调用预置的java异常处理程序,并利用所述java异常处理程序对所述java异常对象进行异常处理;其中,所述java异常处理程序用于将异常对象对应的异常事件上报为java崩溃事件。
[0009]一种可选的实施方式中,所述如果确定基于java本地接口JNI调用的java代码发生异常事件,则获取所述异常事件对应的java异常对象之前,还包括:
[0010]在检测到基于JNI调用java代码后,确定被调用的所述java代码是否发生异常事件。
[0011]一种可选的实施方式中,所述基于所述JNI调用预置的java异常处理程序,并利用所述java异常处理程序对所述java异常对象进行异常处理,包括:
[0012]基于所述JNI调用预设异常解决类中的预设java方法,并将所述java异常对象传递至所述预设java方法;
[0013]利用所述预设java方法调用预置的java异常处理程序,并将所述java异常对象传递至所述java异常处理程序;
[0014]利用所述java异常处理程序对所述java异常对象进行异常处理。
[0015]一种可选的实施方式中,所述基于所述JNI调用预设异常解决类中的预设java方法之前,还包括:
[0016]将预设异常解决类设置为全局引用;
[0017]获取所述预设异常解决类中的预设java方法的标识;
[0018]相应的,所述基于所述JNI调用预设异常解决类中的预设java方法,包括:
[0019]基于所述预设java方法的标识,通过所述JNI调用预设异常解决类中的所述预设java方法。
[0020]第二方面,本公开提供了一种异常处理方法,所述方法包括:
[0021]通过JNI接收java异常对象;其中,所述java异常对象用于表征基于JNI调用java代码发生的异常事件;
[0022]调用预置的java异常处理程序,并利用所述java异常处理程序对所述java异常对象进行异常处理;其中,所述java异常处理程序用于将异常对象对应的异常事件上报为java崩溃事件。
[0023]第三方面,本公开提供了一种异常处理装置,所述装置包括:
[0024]获取模块,用于在确定基于java本地接口JNI调用的java代码发生异常事件时,获取所述异常事件对应的java异常对象;其中,所述java异常对象用于表征所述异常事件;
[0025]删除模块,用于删除所述异常事件对应的异常标识;所述异常标识用于表征java虚拟机处于异常工作状态;
[0026]第一异常处理模块,用于基于所述JNI调用预置的java异常处理程序,并利用所述java异常处理程序对所述java异常对象进行异常处理;其中,所述java异常处理程序用于将异常对象对应的异常事件上报为java崩溃事件。
[0027]第四方面,本公开提供了一种异常处理装置,所述装置包括:
[0028]接收模块,用于通过JNI接收java异常对象;其中,所述java异常对象用于表征基于JNI调用java代码发生的异常事件;
[0029]第二异常处理模块,用于调用预置的java异常处理程序,并利用所述java异常处理程序对所述java异常对象进行异常处理;其中,所述java异常处理程序用于将异常对象对应的异常事件上报为java崩溃事件。
[0030]第五方面,本公开提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备实现上述的方法。
[0031]第六方面,本公开提供了一种设备,包括:存储器,处理器,及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现上述的方法。
[0032]第七方面,本公开提供了一种计算机程序产品,所述计算机程序产品包括计算机程序/指令,所述计算机程序/指令被处理器执行时实现上述的方法。
[0033]本公开实施例提供的技术方案与现有技术相比具有如下优点:
[0034]本公开实施例提供了一种异常处理方法,具体的,如果确定基于java本地接口JNI调用的java代码发生异常事件,则获取所述异常事件对应的java异常对象;其中,所述java异常对象用于表征所述异常事件。然后,删除所述异常事件对应的异常标识;所述异常标识用于表征java虚拟机处于异常工作状态。最终,基于所述JNI调用预置的java异常处理程序,并利用所述java异常处理程序对所述java异常对象进行异常处理;其中,所述java异常处理程序用于将异常对象对应的异常事件上报为java崩溃事件。本公开实施例通过调用
java异常处理程序对java代码发生的异常事件进行处理,将java代码发生的异常事件上报为java崩溃事件,降低因异常事件类型上报错误导致的聚合分析结果不准确问题的发生概率。
附图说明
[0035]此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
[0036]为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0037]图1为本公开实施例提供的一种异常处理方法的流程图;本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种异常处理方法,其特征在于,所述方法包括:如果确定基于java本地接口JNI调用的java代码发生异常事件,则获取所述异常事件对应的java异常对象;其中,所述java异常对象用于表征所述异常事件;删除所述异常事件对应的异常标识;所述异常标识用于表征java虚拟机处于异常工作状态;基于所述JNI调用预置的java异常处理程序,并利用所述java异常处理程序对所述java异常对象进行异常处理;其中,所述java异常处理程序用于将异常对象对应的异常事件上报为java崩溃事件。2.根据权利要求1所述的方法,其特征在于,所述如果确定基于java本地接口JNI调用的java代码发生异常事件,则获取所述异常事件对应的java异常对象之前,还包括:在检测到基于JNI调用java代码后,确定被调用的所述java代码是否发生异常事件。3.根据权利要求1所述的方法,其特征在于,所述基于所述JNI调用预置的java异常处理程序,并利用所述java异常处理程序对所述java异常对象进行异常处理,包括:基于所述JNI调用预设异常解决类中的预设java方法,并将所述java异常对象传递至所述预设java方法;利用所述预设java方法调用预置的java异常处理程序,并将所述java异常对象传递至所述java异常处理程序;利用所述java异常处理程序对所述java异常对象进行异常处理。4.根据权利要求3所述的方法,其特征在于,所述基于所述JNI调用预设异常解决类中的预设java方法之前,还包括:将预设异常解决类设置为全局引用;获取所述预设异常解决类中的预设java方法的标识;相应的,所述基于所述JNI调用预设异常解决类中的预设java方法,包括:基于所述预设java方法的标识,通过所述JNI调用预设异常解决类中的所述预设java方法。5.一种异常处理方法,其特征在于,所述方法包括:通过JNI接收java异常对象;其中,所述java异常对象用于表征基于JNI调用java代码发生的异常...

【专利技术属性】
技术研发人员:刘洪凯
申请(专利权)人:北京字节跳动网络技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1