一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种代码异常处理方法、装置、计算机设备和存储介质与流程

2022-12-31 23:08:37 来源:中国专利 TAG:


1.本技术涉及通讯技术领域,具体涉及一种代码异常处理方法、装置、计算机设备和存储介质。


背景技术:

2.在代码开发的过程中,异常的逻辑处理关系到代码稳定性和健壮性,是代码开发中非常重要的一个部分。但是,由于大部分的开发人员由于代码开发能力不同,开发框架熟悉程度不同,在对代码异常进行处理时,会存在不同的处理,这会造成代码可读性降低,代码维护难度增加,并增加前端开发人员,及第三方对接人员理解难度。


技术实现要素:

3.本技术实施例提出了一种代码异常处理方法、装置、计算机设备和存储介质,可以实现对代码中的异常类型进行统一处理,减少业务代码中大量的异常处理逻辑代码,使业务代码更加简洁,便于理解和维护。
4.本技术实施例提供了一种代码异常处理方法,包括:
5.当检测到业务代码存在异常时,确定所述业务代码对应的异常类型;
6.基于所述异常类型,确定所述异常类型对应的异常处理函数;
7.调用所述异常处理函数识别所述异常类型对应的异常来源信息;
8.调用所述异常处理函数对所述异常类型进行编码处理,得到所述异常类型对应的异常标识;
9.基于所述异常来源信息和所述异常标识生成所述异常类型对应的异常描述信息。
10.相应的,本技术实施例还提供了一种代码异常处理装置,包括:
11.类型确定单元,用于当检测到业务代码存在异常时,确定所述业务代码对应的异常类型;
12.函数确定单元,用于基于所述异常类型,确定所述异常类型对应的异常处理函数;
13.信息识别单元,用于调用所述异常处理函数识别所述异常类型对应的异常来源信息;
14.编码单元,用于调用所述异常处理函数对所述异常类型进行编码处理,得到所述异常类型对应的异常标识;
15.生成单元,用于基于所述异常来源信息和所述异常标识生成所述异常类型对应的异常描述信息。
16.在一实施例中,所述信息识别单元,可以包括:
17.构造子单元,用于通过所述异常处理函数构造异常方法解析器;
18.第一信息获取子单元,用于获取所述异常类型对应的堆栈信息;
19.解析子单元,用于基于所述异常方法解析器对所述堆栈信息进行解析处理,得到所述异常类型对应的异常来源信息。
20.在一实施例中,所述解析子单元,可以包括:
21.遍历模块,用于通过所述异常方法解析器基于预设关键词对所述堆栈信息进行遍历处理;
22.定位模块,用于通过所述异常方法解析器基于遍历结果,在所述堆栈信息中定位出和所述预设关键词匹配的目标关键词;
23.确定模块,用于通过所述异常方法解析器在所述堆栈信息中确定所述目标关键词关联的信息,得到所述异常来源信息。
24.在一实施例中,所述编码单元,可以包括:
25.第二信息获取子单元,用于通过所述异常处理函数获取异常标识映射信息;
26.映射子单元,用于基于所述异常标识映射信息,通过所述异常处理函数对所述异常类型进行映射处理,得到所述异常类型对应的异常标识。
27.在一实施例中,所述映射子单元,可以包括:
28.匹配模块,用于将所述异常类型和所述异常标识映射信息中的预设异常类型标识进行匹配,得到目标异常类型标识;
29.第一标识确定模块,用于与确定和所述目标异常类型标识关联的关联异常标识;
30.第二标识确定模块,用于将所述关联异常标识确定为所述异常类型对应的异常标识。
31.在一实施例中,所述生成单元,可以包括:
32.输入子单元,用于将所述异常来源信息和所述异常标识输入所述预设全局异常捕获函数;
33.排版子单元,用于通过所述预设全局异常捕获函数基于预设描述格式对所述异常来源信息和所述异常标识进行排版处理,得到所述异常描述信息。
34.在一实施例中,所述代理异常处理装置,还可以包括:
35.路径确定单元,用于确定所述异常描述信息的上报路径;
36.上报单元,用于基于所述上报路径将所述异常描述信息进行上报。
37.相应的,本技术实施例还提供一种计算机设备,所述计算机设备包括存储器和处理器;所述存储器存储有计算机程序,所述处理器用于运行所述存储器内的计算机程序,以执行本技术实施例任一提供的代码异常处理方法。
38.相应的,本技术实施例还提供一种存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现本技术实施例任一提供的代码异常处理方法。
39.本技术实施例包括:当检测到业务代码存在异常时,确定业务代码对应的异常类型;基于异常类型,确定异常类型对应的异常处理函数;调用异常处理函数识别异常类型对应的异常来源信息;调用异常处理函数对异常类型进行编码处理,得到异常类型对应的异常标识;基于异常来源信息和异常标识生成异常类型对应的异常描述信息,可以实现对代码中的异常类型进行统一处理,减少业务代码中大量的异常处理逻辑代码,使业务代码更加简洁,便于理解和维护。
附图说明
40.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使
用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
41.图1是本技术实施例提供的代码异常处理方法的场景示意图;
42.图2是本技术实施例提供的代码异常处理方法的流程示意图;
43.图3是本技术实施例提供的代码异常处理方法的又一场景示意图;
44.图4是本技术实施例提供的代码异常处理方法的又一流程示意图;
45.图5是本技术实施例提供的代码异常处理装置的结构示意图;
46.图6是本技术实施例提供的计算机设备的结构示意图。
具体实施方式
47.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,然而,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
48.本技术实施例提出了一种代码异常处理方法,该代码异常处理方法可以由代码异常处理装置执行,该代码异常处理装置可以集成在具有至少一种代码异常处理硬件的计算机设备中。其中,该计算机设备可以包括计算机设备以及服务器等中的至少一个。即,本技术实施例提出的代码异常处理方法即可以由计算机设备执行,还可以由服务器执行,还可以由能够进行互相通信的终端和服务器共同执行。
49.其中,终端可以为智能手机、平板电脑、笔记本电脑、个人电脑(personal computer,pc)、智能家居、可穿戴电子设备、vr/ar设备、车载计算机等等。服务器可以为多个异构系统之间的互通服务器或者后台服务器,还可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、以及大数据和人工智能平台等基础云计算服务的云服务器等等。
50.在一实施例中,如图1所示,代码异常处理装置可以集成在服务器11或终端10上,以实施本技术实施例提出的代码异常处理方法。具体地,当服务器11当检测到业务代码存在异常时,确定业务代码对应的异常类型;基于异常类型,确定异常类型对应的异常处理函数;调用异常处理函数识别异常类型对应的异常来源信息;调用异常处理函数对异常类型进行编码处理,得到异常类型对应的异常标识;基于异常来源信息和异常标识生成异常类型对应的异常描述信息。
51.以下分别进行详细说明,需要说明的是,以下实施例的描述顺序不作为对实施例优选顺序的限定。
52.本技术实施例将从代码异常处理装置的角度进行描述,该代码异常处理装置可以集成在计算机设备。
53.如图2所示,提供了一种代码异常处理方法,具体流程包括:
54.101、当检测到业务代码存在异常时,确定业务代码对应的异常类型。
55.在一实施例中,在代码开发的过程中,异常的逻辑处理关系到代码稳定性和健壮
性,是代码开发中非常重要的一个部分。但是,由于大部分的开发人员由于代码开发能力不同,开发框架熟悉程度不同,在对代码异常进行处理时,会存在不同的处理,这会造成代码可读性降低,代码维护难度增加,并增加前端开发人员,及第三方对接人员理解难度。为了解决该问题,本技术实施例提出了一个代码异常处理方法。
56.首先,在一实施例中,当检测到业务代码存在异常时,可以确定业务代码对应的异常类型。
57.其中,业务代码对应的异常类型可以包括业务异常类型、空指针类型、索引越界异常类型、类未找到异常类型、sql异常类型和io异常类型,等等。
58.例如,如图3所示,当服务器检测到业务代码存在异常时,可以确定业务代码对应的异常类型。例如,确定业务代码的异常类型是业务异常类型、空指针类型还是索引越界类型,等等。
59.102、基于异常类型,确定异常类型对应的异常处理函数。
60.在一实施例中,为了可以实现对业务代码中的异常进行统一处理,本技术实施例为每种异常类型都定义了相应的异常处理函数。然后,可以利用异常处理函数实现对业务代码中的异常进行统一处理。
61.在一实施例中,在服务器基于异常类型,确定异常类型对应的异常处理函数之前,可以为每种异常类型都设定具体的异常处理函数。
62.具体的,首先可以从项目代码仓库gitlab中根据项目地址通过git clone命令获取项目源代码。
63.然后,新建一个继承自runtimeexception的自定义异常类,定义类的成员变量errorcode(异常标识)和errormsg(异常来源信息)。
64.然后,可以针对每种异常类型,编写对应的异常处理函数。例如,编写自定义业务异常处理函数为@exceptionhandler(value=自定义异常类,class)。编写空指针异常处理函数,为@exceptionhandler(value=nullpointexception,class)。编写@exceptionhandler(value=nullpointexception,class)为@exceptionhandler(value=indexoutofboundsexception,class)。编写类未找到异常处理函数为@exceptionhandler(value=classnotfoundtexception,class)。编写sql异常处理函数为@exceptionhandler(value=sqlexception,class)。编写io异常处理函数为@exceptionhandler(value=ioexception,class)。
65.函数编写完成后,可以通过maven命令将代码打包到项目中,则整个项目的代码异常会统一通过该方法处理。
66.然后,服务器可以基于异常类型,确定异常类型对应的异常处理函数。
67.例如,若异常类型是空指针类型,则对应的异常处理函数可以是@exceptionhandler(value=nullpointexception,class)。
68.又例如,若异常类型是索引越界类型,则对应的异常处理函数可以是@exceptionhandler(value=indexoutofboundsexception,class)。
69.103、调用异常处理函数识别异常类型对应的异常来源信息。
70.在一实施例中,在确定业务代码对应的异常类型之后,服务器进行代码异常统一处理。其中,代码异常统一处理可以包括调用异常处理函数识别异常类型对应的异常来源
信息以及调用异常处理函数对异常类型进行编码处理,得到异常类型对应的异常标识。
71.在一实施例中,服务器可以调用异常处理函数识别异常类型对应的异常来源信息,其中,异常来源信息可以说明代码业务的异常是来源于哪里。例如,通过异常来源信息可以知道出业务代码中的哪段或者哪句代码出现了问题。
72.在一实施例中,步骤“调用所述异常处理函数识别所述异常类型对应的异常来源信息”,可以包括:
73.通过异常处理函数构造异常方法解析器;
74.获取异常类型对应的堆栈信息;
75.基于异常方法解析器对所述堆栈信息进行解析处理,得到异常类型对应的异常来源信息。
76.其中,堆栈信息可以包括堆栈结构中存储的信息。堆栈信息中包括了业务代码异常时,装置捕获到的信息。通过堆栈信息,可以分析得到业务代码异常的起因。
77.在一实施例中,可以通过异常处理函数构造异常方法解析器。通过异常方法解析器可以对异常类型对应的堆栈信息进行解析,得到异常类型对应的异常来源方法。例如,对于异常处理函数@exceptionhandler,可以构造异常方法解析器exceptionhandlermethodresolver,然后,通过异常方法解析器exceptionhandlermethodresolver对异常类型对应的堆栈信息进行解析,得到异常类型对应的异常来源方法。
78.在一实施例中,步骤“基于异常方法解析器对堆栈信息进行解析处理,得到异常类型对应的异常来源信息”,可以包括:
79.通过异常方法解析器基于预设关键词对堆栈信息进行遍历处理;
80.通过异常方法解析器基于遍历结果,在堆栈信息中定位出和预设关键词匹配的目标关键词;
81.通过异常方法解析器在堆栈信息中确定目标关键词关联的信息,得到异常来源信息。
82.在一实施例中,可以预先设置好异常类型进行来源定位是对应的关键词,得到预设关键词。例如,该预设关键词可以是业务代码中的某个代码语句对应的关键词,等等。然后,可以通过异常方法解析器基于预设关键词对堆栈信息进行遍历处理,并通过异常方法解析器基于遍历结果,在堆栈信息中定位出和预设关键词匹配的目标关键词。即通过异常方法解析器在堆栈信息中找出和该预设关键词相匹配的目标关键词。然后,可以通过异常方法解析器在堆栈信息中确定目标关键词关联的信息,得到异常来源信息。例如,可以将该目标关键词所在的代码语句确定为异常来源信息。又例如,可以将该目标关键词所涉及到的若干句语句确定为异常来源信息。
83.在一实施例中,服务器可以调用异常处理函数识别异常类型对应的异常来源信息,即识别出业务代码中的哪段或者哪句代码出现了问题。
84.例如,对于自定义业务异常类型,可以调用@exceptionhandler(value=自定义异常类,class)注解指定处理自定义的业务异常类型,提业务异常堆栈相关信息作为异常的errmsg(异常来源信息)。
85.又例如,对于空指针异常类型,可以调用@exceptionhandler(value=
nullpointexception,class)注解指定处理空指针异常类型,提取空指针异常堆栈相关信息作为异常的errmsg(异常来源信息)。
86.又例如,对于类未找到异常类型,可以@exceptionhandler(value=classnotfoundtexception,class)注解指定处理类未找到异常类型,提取类未找到异常堆栈相关信息作为异常的errmsg(异常来源信息)。
87.又例如,对于sql异常类型,可以调用@exceptionhandler(value=sqlexception,class)注解指定处理sql异常类型,提取sql异常堆栈相关信息作为异常的errmsg(异常来源信息)。
88.又例如,对于索引越界业务异常类型,可以调用@exceptionhandler(value=indexoutofboundsexception,class)注解指定处理索引越界异常类型,提取索引越界异常堆栈相关信息作为异常的errmsg(异常来源信息)。
89.又例如,对于io异常处理类型,可以调用@exceptionhandler(value=ioexception,class)注解指定处理io异常类型,提取io异常堆栈相关信息作为异常的errmsg(异常来源信息)。
90.104、调用异常处理函数对异常类型进行编码处理,得到异常类型对应的异常标识。
91.在一实施例中,为了便于对业务代码中的异常进行统一管理,还可以调用异常处理函数对异常类型进行编码处理,得到异常类型对应的异常标识。
92.其中,异常标识可以作为异常类型对应的唯一标识。通过异常标识,可以知道异常类型具体是什么。
93.在一实施例中,步骤“调用所述异常处理函数对所述异常类型进行编码处理,得到所述异常类型对应的异常标识”,可以包括:
94.通过异常处理函数获取异常标识映射信息;
95.基于异常标识映射信息,通过异常处理函数对异常类型进行映射处理,得到异常类型对应的异常标识。
96.其中,异常标识映射信息包含了异常类型和异常标识之间的映射关系。
97.在一实施例中,步骤“基于异常标识映射信息,通过异常处理函数对异常类型进行映射处理,得到异常类型对应的异常标识”,可以包括:
98.将异常类型和异常标识映射信息中的预设异常类型进行匹配,得到目标异常类型;
99.确定和目标异常类型关联的关联异常标识;
100.将关联异常标识确定为异常类型对应的异常标识。
101.例如,异常标识映射信息中可以包括多个预设异常类型标识。然后,可以将异常类型和该多个预设异常类型进行匹配,找到和该异常类型相匹配的的关联异常标识。然后,可以确定和目标异常类型关联的关联异常标识,则异常类型对应的异常标识可以是该关联异常标识。
102.在一实施例中,服务器可以调用异常处理函数对异常类型进行编码处理,得到异常类型对应的异常标识。
103.例如,对于自定义业务异常类型,服务器可以服务器调用异常处理函数对异常类
型进行编码处理,得到对应的异常标识10000。
104.又例如,对于空指针异常类型,服务器可以服务器调用异常处理函数对异常类型进行编码处理,得到对应的异常标识10001。
105.又例如,对于索引越界异常类型,服务器可以服务器调用异常处理函数对异常类型进行编码处理,得到对应的异常标识10002。
106.又例如,对于类未找到异常类型,服务器可以服务器调用异常处理函数对异常类型进行编码处理,得到对应的异常标识10003。
107.又例如,对于sql异常类型,服务器可以服务器调用异常处理函数对异常类型进行编码处理,得到对应的异常标识10004。
108.又例如,对于io异常类型,服务器可以服务器调用异常处理函数对异常类型进行编码处理,得到对应的异常标识10005。
109.105、基于异常来源信息和异常标识生成异常类型对应的异常描述信息。
110.在一实施例中,可以基于异常来源信息和异常标识生成异常类型对应的异常描述信息。其中,为了实现异常处理的统一性,可以利用预设全局异常俘获函数基于异常来源信息和异常标识生成异常类型对应的异常描述信息,使得每种异常类型对应的异常描述信息一致。
111.在一实施例中,步骤“基于异常来源信息和异常标识生成异常类型对应的异常描述信息”,可以包括:
112.将异常来源信息和异常标识输入预设全局异常捕获函数;
113.通过预设全局异常捕获函数基于预设描述格式对异常来源信息和异常标识进行排版处理,得到异常描述信息。
114.例如,新建一个继承自runtimeexception的自定义异常类,定义类的成员变量errorcode(异常标识)和errormsg(异常来源信息)。
115.然后,通过预设全局异常捕获函数按照errorcode和errormsg的预设排版格式对异常来源信息和异常标识进行排版处理,得到异常描述信息。
116.本技术实施例提出了一个代码异常处理方法,包括:当检测到业务代码存在异常时,确定业务代码对应的异常类型;基于异常类型,确定异常类型对应的异常处理函数;调用异常处理函数识别异常类型对应的异常来源信息;调用异常处理函数对异常类型进行编码处理,得到异常类型对应的异常标识;基于异常来源信息和异常标识生成异常类型对应的异常描述信息;通过统一的自定义的异常处理类,处理业务代码中可能发生的各种异常,同时对异常的种类进行统一的编码。当前端或者第三方在集成调用时,能根据统一的异常编码,统一处理。其次,本技术实施例可以通过注解的方式,开发在集成异常处理逻辑非常简单。此外,本技术实施可以减少业务代码中大量的异常处理逻辑代码(throw或try catch代码),使业务代码更加简洁,便于理解和维护。
117.根据上面实施例所描述的方法,以下将举例作进一步详细说明。
118.本技术实施例将以代码异常处理方法集成在服务器为例来介绍本技术实施例方法。
119.在一实施例中,如图4所示,一种代码异常处理方法,具体流程如下:
120.201、当服务器检测到业务代码存在异常时,确定业务代码对应的异常类型。
121.例如,如图3所示,当服务器检测到业务代码存在异常时,可以确定业务代码对应的异常类型。例如,确定业务代码的异常类型是业务异常类型、空指针类型还是索引越界类型,等等。
122.202、服务器基于异常类型,确定异常类型对应的异常处理函数。
123.然后,服务器可以基于异常类型,确定异常类型对应的异常处理函数。
124.例如,若异常类型是空指针类型,则对应的异常处理函数可以是@exceptionhandler(value=nullpointexception,class)。
125.又例如,若异常类型是索引越界类型,则对应的异常处理函数可以是@exceptionhandler(value=indexoutofboundsexception,class)。
126.其中,在服务器基于异常类型,确定异常类型对应的异常处理函数之前,可以为每种异常类型都设定具体的异常处理函数。
127.具体的,首先可以从项目代码仓库gitlab中根据项目地址通过git clone命令获取项目源代码。
128.然后,新建一个继承自runtimeexception的自定义异常类,定义类的成员变量errorcode(异常标识)和errormsg(异常来源信息)。
129.然后,可以针对每种异常类型,编写对应的异常处理函数。例如,编写自定义业务异常处理函数为@exceptionhandler(value=自定义异常类,class)。编写空指针异常处理函数,为@exceptionhandler(value=nullpointexception,class)。编写@exceptionhandler(value=nullpointexception,class)为@exceptionhandler(value=indexoutofboundsexception,class)。编写类未找到异常处理函数为@exceptionhandler(value=classnotfoundtexception,class)。编写sql异常处理函数为@exceptionhandler(value=sqlexception,class)。编写io异常处理函数为@exceptionhandler(value=ioexception,class)。
130.函数编写完成后,可以通过maven命令将代码打包到项目中,则整个项目的代码异常会统一通过该方法处理。
131.203、服务器调用异常处理函数识别异常类型对应的异常来源信息。
132.在一实施例中,在确定业务代码对应的异常类型之后,服务器进行代码异常统一处理。其中,代码异常统一处理可以包括调用异常处理函数识别异常类型对应的异常来源信息以及调用异常处理函数对异常类型进行编码处理,得到异常类型对应的异常标识。
133.在一实施例中,服务器可以调用异常处理函数识别异常类型对应的异常来源信息,即识别出业务代码中的哪段或者哪句代码出现了问题。
134.例如,对于自定义业务异常类型,可以调用@exceptionhandler(value=自定义异常类,class)注解指定处理自定义的业务异常类型,提业务异常堆栈相关信息作为异常的errmsg(异常来源信息)。
135.又例如,对于空指针异常类型,可以调用@exceptionhandler(value=nullpointexception,class)注解指定处理空指针异常类型,提取空指针异常堆栈相关信息作为异常的errmsg(异常来源信息)。
136.又例如,对于类未找到异常类型,可以@exceptionhandler(value=classnotfoundtexception,class)注解指定处理类未找到异常类型,提取类未找到异常堆
栈相关信息作为异常的errmsg(异常来源信息)。
137.又例如,对于sql异常类型,可以调用@exceptionhandler(value=sqlexception,class)注解指定处理sql异常类型,提取sql异常堆栈相关信息作为异常的errmsg(异常来源信息)。
138.又例如,对于索引越界业务异常类型,可以调用@exceptionhandler(value=indexoutofboundsexception,class)注解指定处理索引越界异常类型,提取索引越界异常堆栈相关信息作为异常的errmsg(异常来源信息)。
139.又例如,对于io异常处理类型,可以调用@exceptionhandler(value=ioexception,class)注解指定处理io异常类型,提取io异常堆栈相关信息作为异常的errmsg(异常来源信息)。
140.204、服务器调用异常处理函数对异常类型进行编码处理,得到异常类型对应的异常标识。
141.在一实施例中,服务器可以调用异常处理函数对异常类型进行编码处理,得到异常类型对应的异常标识。
142.例如,对于自定义业务异常类型,服务器可以服务器调用异常处理函数对异常类型进行编码处理,得到对应的异常标识10000。
143.又例如,对于空指针异常类型,服务器可以服务器调用异常处理函数对异常类型进行编码处理,得到对应的异常标识10001。
144.又例如,对于索引越界异常类型,服务器可以服务器调用异常处理函数对异常类型进行编码处理,得到对应的异常标识10002。
145.又例如,对于类未找到异常类型,服务器可以服务器调用异常处理函数对异常类型进行编码处理,得到对应的异常标识10003。
146.又例如,对于sql异常类型,服务器可以服务器调用异常处理函数对异常类型进行编码处理,得到对应的异常标识10004。
147.又例如,对于io异常类型,服务器可以服务器调用异常处理函数对异常类型进行编码处理,得到对应的异常标识10005。
148.205、服务器基于异常来源信息和异常标识生成异常类型对应的异常描述信息。
149.在一实施例中,服务器可以将异常来源信息和异常标识进行整合,得到异常类型对应的异常描述信息。
150.接下来,服务器可以确定异常描述信息的上报路径,然后,基于上报路径将异常描述信息进行上报。
151.例如,如图3所示,服务器可以将异常描述信息上报至web前端、移动端或第三方系统。
152.本技术实施例提出了一个操作方法,包括:当服务器检测到业务代码存在异常时,确定业务代码对应的异常类型;服务器基于异常类型,确定异常类型对应的异常处理函数;服务器调用异常处理函数识别异常类型对应的异常来源信息;服务器调用异常处理函数对异常类型进行编码处理,得到异常类型对应的异常标识;服务器基于异常来源信息和异常标识生成异常类型对应的异常描述信息;通过统一的自定义的异常处理类,处理业务代码中可能发生的各种异常,同时对异常的种类进行统一的编码。当前端或者第三方在集成调
用时,能根据统一的异常编码,统一处理。其次,本技术实施例可以通过注解的方式,开发在集成异常处理逻辑非常简单。此外,本技术实施可以减少业务代码中大量的异常处理逻辑代码(throw或try catch代码),使业务代码更加简洁,便于理解和维护。
153.为了更好地实施本技术实施例提供的代码异常处理方法,在一实施例中还提供了一种代码异常处理装置,该代码异常处理装置可以集成于计算机设备中。其中名词的含义与上述产品的代码异常处理方法中相同,具体实现细节可以参考方法实施例中的说明。
154.在一实施例中,提供了一种代码异常处理装置,该代码异常处理装置具体可以集成在计算机设备,例如电视中,如图5所示,该代码异常处理装置包括:类型确定单元301、函数确定单元302、信息识别单元303、编码单元304和生成单元305,具体如下:
155.类型确定单元301,用于当检测到业务代码存在异常时,确定所述业务代码对应的异常类型;
156.函数确定单元302,用于基于所述异常类型,确定所述异常类型对应的异常处理函数;
157.信息识别单元303,用于调用所述异常处理函数识别所述异常类型对应的异常来源信息;
158.编码单元304,用于调用所述异常处理函数对所述异常类型进行编码处理,得到所述异常类型对应的异常标识;
159.生成单元305,用于基于所述异常来源信息和所述异常标识生成所述异常类型对应的异常描述信息。
160.在一实施例中,所述信息识别单元303,可以包括:
161.构造子单元,用于通过所述异常处理函数构造异常方法解析器;
162.第一信息获取子单元,用于获取所述异常类型对应的堆栈信息;
163.解析子单元,用于基于所述异常方法解析器对所述堆栈信息进行解析处理,得到所述异常类型对应的异常来源信息。
164.在一实施例中,所述解析子单元,可以包括:
165.遍历模块,用于基于预设关键词对所述堆栈信息进行遍历处理;
166.定位模块,用于基于遍历结果,在所述堆栈信息中定位出和所述预设关键词匹配的目标关键词;
167.确定模块,用于在所述堆栈信息中确定所述目标关键词关联的信息,得到所述异常来源信息。
168.在一实施例中,所述编码单元304,可以包括:
169.第二信息获取子单元,用于通过所述异常处理函数获取异常标识映射信息;
170.映射子单元,用于基于所述异常标识映射信息,通过所述异常处理函数对所述异常类型进行映射处理,得到所述异常类型对应的异常标识。
171.在一实施例中,所述映射子单元,可以包括:
172.匹配模块,用于将所述异常类型和所述异常标识映射信息中的预设异常类型标识进行匹配,得到目标异常类型标识;
173.第一标识确定模块,用于与确定和所述目标异常类型标识关联的关联异常标识;
174.第二标识确定模块,用于将所述关联异常标识确定为所述异常类型对应的异常标
识。
175.在一实施例中,所述生成单元305,可以包括:
176.输入子单元,用于将所述异常来源信息和所述异常标识输入所述预设全局异常捕获函数;
177.排版子单元,用于通过所述预设全局异常捕获函数基于预设描述格式对所述异常来源信息和所述异常标识进行排版处理,得到所述异常描述信息。
178.在一实施例中,所述代理异常处理装置,还可以包括:
179.路径确定单元,用于确定所述异常描述信息的上报路径;
180.上报单元,用于基于所述上报路径将所述异常描述信息进行上报。
181.具体实施时,以上各个单元可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元的具体实施可参见前面的方法实施例,在此不再赘述。
182.通过上述的代码异常处理装置可以实现对代码中的异常类型进行统一处理,减少业务代码中大量的异常处理逻辑代码,使业务代码更加简洁,便于理解和维护。
183.本技术实施例还提供一种计算机设备,该计算机设备可以包括计算机设备或服务器,比如,计算机设备可以作为代码异常处理计算机设备,该代码异常处理计算机设备可以为智能电视等等;又比如计算机设备可以为服务器,如代码异常处理服务器等。如图6所示,其示出了本技术实施例所涉及的计算机设备的结构示意图,具体来讲:
184.该计算机设备可以包括一个或者一个以上处理核心的处理器401、一个或一个以上计算机可读存储介质的存储器402、电源403和输入单元404等部件。本领域技术人员可以理解,图6中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
185.处理器401是该计算机设备的控制中心,利用各种接口和线路连接整个计算机设备的各个部分,通过运行或执行存储在存储器402内的软件程序和/或模块,以及调用存储在存储器402内的数据,执行计算机设备的各种功能和处理数据,从而对计算机设备进行整体监控。可选的,处理器401可包括一个或多个处理核心;优选的,处理器401可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户页面和应用程序等,调制解调处理器主要处理无线通讯。可以理解的是,上述调制解调处理器也可以不集成到处理器401中。
186.存储器402可用于存储软件程序以及模块,处理器401通过运行存储在存储器402的软件程序以及模块,从而执行各种功能应用以及代码异常处理。存储器402可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器402还可以包括存储器控制器,以提供处理器401对存储器402的访问。
187.计算机设备还包括给各个部件供电的电源403,优选的,电源403可以通过电源管理系统与处理器401逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源403还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检
测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
188.该计算机设备还可包括输入单元404,该输入单元404可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
189.尽管未示出,计算机设备还可以包括显示单元等,在此不再赘述。具体在本实施例中,计算机设备中的处理器401会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器402中,并由处理器401来运行存储在存储器402中的应用程序,从而实现各种功能,如下:
190.当检测到业务代码存在异常时,确定所述业务代码对应的异常类型;
191.基于所述异常类型,确定所述异常类型对应的异常处理函数;
192.调用所述异常处理函数识别所述异常类型对应的异常来源信息;
193.调用所述异常处理函数对所述异常类型进行编码处理,得到所述异常类型对应的异常标识;
194.基于所述异常来源信息和所述异常标识生成所述异常类型对应的异常描述信息。
195.以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
196.根据本技术的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例中各种可选实现方式中提供的方法。
197.本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过计算机程序来完成,或通过计算机程序控制相关的硬件来完成,该计算机程序可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
198.为此,本技术实施例还提供一种存储介质,其中存储有计算机程序,该计算机程序能够被处理器进行加载,以执行本技术实施例所提供的任一种代码异常处理方法中的步骤。例如,该计算机程序可以执行如下步骤:
199.当检测到业务代码存在异常时,确定所述业务代码对应的异常类型;
200.基于所述异常类型,确定所述异常类型对应的异常处理函数;
201.调用所述异常处理函数识别所述异常类型对应的异常来源信息;
202.调用所述异常处理函数对所述异常类型进行编码处理,得到所述异常类型对应的异常标识;
203.基于所述异常来源信息和所述异常标识生成所述异常类型对应的异常描述信息。
204.以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
205.由于该存储介质中所存储的计算机程序,可以执行本技术实施例所提供的任一种代码异常处理方法中的步骤,因此,可以实现本技术实施例所提供的任一种代码异常处理方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
206.以上对本技术实施例所提供的一种代码异常处理方法、装置、计算机设备和存储介质进行了详细介绍,本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想;同时,对于本领域的技术人员,依据本技术的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说
明书内容不应理解为对本技术的限制。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献