CN115687128A - 一种代码异常处理方法、装置、电子设备及存储介质 - Google Patents

一种代码异常处理方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN115687128A
CN115687128A CN202211379631.XA CN202211379631A CN115687128A CN 115687128 A CN115687128 A CN 115687128A CN 202211379631 A CN202211379631 A CN 202211379631A CN 115687128 A CN115687128 A CN 115687128A
Authority
CN
China
Prior art keywords
code
exception
code file
enhancement mode
function
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
Application number
CN202211379631.XA
Other languages
English (en)
Inventor
周小亮
杨坤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ping An Bank Co Ltd
Original Assignee
Ping An Bank Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ping An Bank Co Ltd filed Critical Ping An Bank Co Ltd
Priority to CN202211379631.XA priority Critical patent/CN115687128A/zh
Publication of CN115687128A publication Critical patent/CN115687128A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明公开一种代码异常处理方法、装置、电子设备及存储介质,方法包括:获取项目源码,其中,所述项目源码中插入有切面代码文件,所述切面代码文件定义了切面代码文件的生效路径类、切点以及增强方式;根据切面代码文件的生效路径类和切点,确定所述项目源码中需要监听的函数;根据所述切面代码文件的增强方式,捕获所述需要监听的函数的异常;根据所述切面代码文件的增强方式,对所述异常进行分类处理,以实现对相同类型的异常进行统一处理。本发明解决了现有技术中代码异常处理工作量大、维护难度高的技术问题。

Description

一种代码异常处理方法、装置、电子设备及存储介质
技术领域
本发明涉及数据处理技术领域,具体涉及一种代码异常处理方法、装置、电子设备及存储介质。
背景技术
在软件代码开发过程中,对于异常逻辑的处理,是最经常会碰到的问题,对于代码开发者来说,最简单直接的方式就是使用try catch代码块来捕获系统异常,但是这种处理方式需要开发者编写大量的代码,而且异常信息不易于统一维护,增加了开发工作量,甚至可能还会出现异常没有被捕获的情况。另外,由于大量的重复的异常处理代码存在,对于测试人员在进行功能测试过中的业务代码覆盖率的统计也会造成干扰,影响数据统计的准确性。同时由于在业务代码中带有大量的异常处理代码,影响业务代码可读性,增加业务代码维护难度。此外,由于异常代码的处理逻辑没有统一,造成代码复用率低,在对异常代码逻辑处理修改或者升级时需要修改的代码量大,增加代码升级修改难度,增加项目研发成本。
因此,亟需一种能够简单、方便的进行代码异常处理的方法。
发明内容
本发明的目的在于克服上述技术不足,提供一种可用于金融科技或者其它相关技术领域的代码异常处理方法、装置、电子设备及存储介质,解决现有技术中代码异常处理工作量大、维护难度高的技术问题。
为达到上述技术目的,本发明采取了以下技术方案:
第一方面,本发明提供一种代码异常处理方法,包括如下步骤:
获取项目源码,其中,所述项目源码中插入有切面代码文件,所述切面代码文件定义了切面代码文件的生效路径类、切点以及增强方式;
根据切面代码文件的生效路径类和切点,确定所述项目源码中需要监听的函数;
根据所述切面代码文件的增强方式,捕获所述需要监听的函数的异常;
根据所述切面代码文件的增强方式,对所述异常进行分类处理,以实现对相同类型的异常进行统一处理。
在一些实施例中,所述增强方式为环绕增强方式。
在一些实施例中,所述切点为生效路径类下的所有函数。
在一些实施例中,根据切面代码文件的生效路径类和切点,确定所述项目源码中需要监听的函数,包括:
根据所述切面代码文件的生效路径类,确定所述项目源码中需要监听的目标类;
根据所述目标类以及所述切点,确定所述目标类下需要监听的函数。
在一些实施例中,所述根据所述切面代码文件的增强方式,捕获所述需要监听的函数的异常,包括:
根据所述切面代码文件的增强方式,获取所述需要监听的函数的函数信息,其中,所述函数信息包括类名、方法名以及请求参数列表中的至少一种;
采用预设的异常测试语句对所述函数信息进行处理,以获取所述函数信息中的异常。
在一些实施例中,所述根据所述切面代码文件的增强方式,对所述异常进行分类处理,包括:
根据所述切面代码文件的增强方式,确定所述异常的异常信息,并将所述异常信息作为所述切面代码文件的返回对象,其中,所述异常信息用于表示所述异常的类型。
在一些实施例中,所述异常信息至少包括异常类型、异常代码以及异常堆栈信息。
第二方面,本发明还提供一种代码异常处理装置,包括:
获取模块,用于获取项目源码,其中,所述项目源码中插入有切面代码文件,所述切面代码文件定义了切面代码文件的生效路径类、切点以及增强方式;
监听函数确定模块,用于根据切面代码文件的生效路径类和切点,确定所述项目源码中需要监听的函数;
异常捕获模块,用于根据所述切面代码文件的增强方式,捕获所述需要监听的函数的异常;
处理模块,用于根据所述切面代码文件的增强方式,对所述异常进行分类处理,以实现对相同类型的异常进行统一处理。
第三方面,本发明还提供一种电子设备,包括:处理器和存储器;
所述存储器上存储有可被所述处理器执行的计算机程序;
所述处理器执行所述计算机程序时实现如上所述的代码异常处理方法中的步骤。
第四方面,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如上所述的代码异常处理方法中的步骤。
与现有技术相比,本发明提供的代码异常处理方法、装置、电子设备及存储介质,首先获取项目代码,其中,所述项目源码中插入有切面代码文件,所述切面代码文件定义了切面代码文件的生效路径类、切点以及增强方式,之后根据切面代码文件的生效路径类和切点,确定所述项目源码中需要监听的函数,之后根据所述切面代码文件的增强方式,捕获所述需要监听的函数的异常,最后根据所述切面代码文件的增强方式,对所述异常进行分类处理,以实现对相同类型的异常进行统一处理。本发明基于AOP原理实现的异常统一处理,可以有效的捕获代码异常,开发人员只需要关注业务代码逻辑实现,无需重复开发代码异常处理逻辑,减少代码开发量,提升开发效率,而且,业务代码中无重复的异常处理逻辑代码,业务代码更加简洁,增加代码的可读性及易维护性,另外,根据异常类型统一进行异常处理,代码异常逻辑及返回编码统一,对于前端开发人员,及第三方对接人员能统一处理接口返回的异常信息。
附图说明
图1是本发明实施例提供的代码异常处理方法的流程图;
图2是本发明实施例提供的代码异常处理方法中,步骤S200的流程图;
图3是本发明实施例提供的代码异常处理方法中,步骤S300的流程图;
图4是本发明实施例提供的代码异常处理装置的功能模块示意图;
图5是本发明实施例提供的电子设备的硬件结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
请参阅图1,图1是本发明实施例提供的一种代码异常处理方法的流程示意图。本发明实施例所涉及的代码异常处理方法可由电子设备执行,该电子设备能够进行接收或发送数据等操作,可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、便携式计算机和台式服务器等等。如图1所示,该方法具体包括以下步骤S100至步骤S400。
S100、获取项目源码,其中,所述项目源码中插入有切面代码文件,所述切面代码文件定义了切面代码文件的生效路径类、切点以及增强方式。
本实施例中,首先从项目代码管理仓库gitlab中通过gitclone命令获取项目源码,然后在项目源码中增加java切面代码文件,该切面代码文件是一种通过AOP技术进行编程的文件,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。切面代码文件通过定义其切面、连接点、切点、增强方式等,可以执行特定的动作。因此,当项目源码中增加java切面代码文件后,通过在该文件的类声明位置通过@Aspect(切面)注解标注该文件为切面代码类,在文件中通过在注解@pointcut(切点)中设置exceution(异常处理机制)路径,该切面代码对指定的路径的类生效。示例性的,对项目的controller(控制层),及serveices(服务层)类中的异常进行统一的异常处理,则指定的类路径地址为:@pointcut(“”execution(*.*controller.*(..),*.*services.*(..))“”)。
此外,通过对切面代码文件的增强(Advice)方式进行设置,定义在Pointcut(切点)里面定义的程序点具体要做的操作,它通过before、after和around来区别是在每个joint point(连接点)之前、之后还是代替执行的代码。
S200、根据切面代码文件的生效路径类和切点,确定所述项目源码中需要监听的函数。
本实施例中,当对切面代码文件定义完成后,将该切面代码文件插入项目源码中,然后可通过该切面代码文件的生效路径类和切点确定出项目源码中需要监听的函数,从而对该需要监听的函数进行异常检测,无需重复开发代码即可快速获取所有需要监测的函数,简单方便,增加开发效率。
S300、根据所述切面代码文件的增强方式,捕获所述需要监听的函数的异常。
本实施例中,由于增强方式定义了在切点里面定义的所有需要监听的函数具体要做的操作,因此,当获取了需要监听的函数后,通过该增强方式来进行函数异常的捕获。示例性的,可在异常捕获前,获取各个函数的真是类名、真实方法名和请求参数列表,在异常捕获后,获取异常类型等,从而快速的对异常进行处理。
S400、根据所述切面代码文件的增强方式,对所述异常进行分类处理,以实现对相同类型的异常进行统一处理。
本实施例中,当异常捕获完成后,对捕获的异常进行分类处理,在获取到异常后,通过getClass.getName获取异常类型,其中,异常类型有多种,通过对异常进行统一的异常处理,实现异常代码统一,异常逻辑处理统一,对于前端开发人员,及第三方对接人员能统一处理接口返回的异常编码。
本发明实施例首先获取项目代码,其中,所述项目源码中插入有切面代码文件,所述切面代码文件定义了切面代码文件的生效路径类、切点以及增强方式,之后根据切面代码文件的生效路径类和切点,确定所述项目源码中需要监听的函数,之后根据所述切面代码文件的增强方式,捕获所述需要监听的函数的异常,最后根据所述切面代码文件的增强方式,对所述异常进行分类处理,以实现对相同类型的异常进行统一处理。本发明基于AOP原理实现的异常统一处理,可以有效的捕获代码异常,开发人员只需要关注业务代码逻辑实现,无需重复开发代码异常处理逻辑,减少代码开发量,提升开发效率,而且,业务代码中无重复的异常处理逻辑代码,业务代码更加简洁,增加代码的可读性及易维护性,另外,根据异常类型统一进行异常处理,代码异常逻辑及返回编码统一,对于前端开发人员,及第三方对接人员能统一处理接口返回的异常信息。
在一些实施例中,所述增强方式为环绕增强方式。即aop为Around增强处理。@Around注解用于修饰Around增强处理,Around增强处理是功能比较强大的增强处理,它近似于Before增强处理和AfterReturing增强处理的总结,Around增强处理既可在执行目标方法之前增强动作,也可在执行目标方法之后织入增强的执行。与Before增强处理、AfterReturning增强处理不同的是,Around增强处理可以决定目标方法在什么时候执行,如何执行,甚至可以完全阻止目标方法的执行。当定义一个Around增强处理方法时,该方法的第一个形参必须是ProceedJoinPoint类型(至少含有一个形参),在增强处理方法体内,调用ProceedingJoinPoint参数的procedd()方法才会执行目标方法——这就是Around增强处理可以完全控制方法的执行时机、如何执行的关键;如果程序没有调用ProceedingJoinPoint参数的proceed()方法,则目标方法不会被执行。
示例性的,通过@Around(“pintcut()”)注解包围指定路径下类是的所有函数,监听在函数执行的过程的相关信息。
在一些实施例中,所述切点为生效路径类下的所有函数。即本发明实施例对生效路径类的所有函数都进行监测,从而能够监测到生效路径类下的所有异常,在避免增加重复的异常处理逻辑代码的同时保证异常检测的全面性,减少代码开发量,提升开发效率。
在一些实施例中,请参阅图2,所述步骤S200具体包括:
S210、根据所述切面代码文件的生效路径类,确定所述项目源码中需要监听的目标类;
S220、根据所述目标类以及所述切点,确定所述目标类下需要监听的函数。
本实施例中,生效路径类可通过切面代码文件的切面(Aspect)声明,Aspect声明类似于Java中的类声明,在Aspect中会包含着一些Pointcut以及相应的Advice,因此,可通过Aspect声明确定需要监听的目标类。
在确定了目标类后,进一步可通过切点来确定需要监听的函数,切面表示一组joint point,这些joint point或是通过逻辑关系组合起来,或是通过通配、正则表达式等方式集中起来,它定义了相应的Advice将要发生的地方,故通过切点可以确定目标类下需要具体监听的函数。
在一些实施例中,请参阅图3,所述步骤S300具体包括:
S310、根据所述切面代码文件的增强方式,获取所述需要监听的函数的函数信息,其中,所述函数信息包括类名、方法名以及请求参数列表中的至少一种;
S320、采用预设的异常测试语句对所述函数信息进行处理,以获取所述函数信息中的异常。
本实施例中,通过@Around(“pintcut()”)注解包围指定路径下类是的所有函数,监听在函数执行的过程的相关信息,示例性的,通过ProceedingJoinPoint.getTarget().getClass.getName获取真实类名,通过ProceedingJoinPoint.getSignature.getName获取真实方法名,通过ProceedingJoinPoint.getArgs获取请求参数列表。之后通过try-catch语句捕获ProceedingJoinPoint.processed()方法中出现的异常,捕获到的异常则为代码业务代码运行时产生的异常。其中,try-catch语句包括try语句和catch语句,可能会出现异常的代码包括在try语句块内,处理异常的代码包括在catch语句内。在程序执行时,如果try语句内的代码出现错误,try会创建异常对象并抛出,catch捕获异常对象,则catch语句块内的代码将会执行,如此即捕获函数信息中的异常。
在一些实施例中,所述根据所述切面代码文件的增强方式,对所述异常进行分类处理,包括:
根据所述切面代码文件的增强方式,确定所述异常的异常信息,并将所述异常信息作为所述切面代码文件的返回对象,其中,所述异常信息用于表示所述异常的类型。
优选的,所述异常信息至少包括异常类型、异常代码以及异常堆栈信息。
本实施例中,在获取了异常后,通过增强方式中的getClass.getName获取异常类型。示例性的,异常类型为ArithmeticExecption时,则该异常为算术异常类,设置异常代码为501,通过printStackTrace()打印异常堆栈信息,异常类型为IllegalArgumentException时,则该异常为非法参数异常,设置异常代码为502,通过printStackTrace()打印异常堆栈信息,异常类型为NullPointerException时,则该异常为空指针异常,设置异常代码为503,通过printStackTrace()打印异常堆栈信息,异常类型为ArrayIndexOutOfBoundsException时,则该异常为数组下标越界异常,设置异常代码为504,通过printStackTrace()打印异常堆栈信息,异常类型为非上述异常类型时,则该异常为未知异常设置异常代码为500,通过printStackTrace()打印异常堆栈信息。
通过将异常类型,异常代码,异常的堆栈信息,写入到定义异常对象中,作为该切面函数返回对象。
本发明提供的技术方案,首先获取项目代码,其中,所述项目源码中插入有切面代码文件,所述切面代码文件定义了切面代码文件的生效路径类、切点以及增强方式,之后根据切面代码文件的生效路径类和切点,确定所述项目源码中需要监听的函数,之后根据所述切面代码文件的增强方式,捕获所述需要监听的函数的异常,最后根据所述切面代码文件的增强方式,对所述异常进行分类处理,以实现对相同类型的异常进行统一处理。本发明基于AOP原理实现的异常统一处理,可以有效的捕获代码异常,开发人员只需要关注业务代码逻辑实现,无需重复开发代码异常处理逻辑,减少代码开发量,提升开发效率,而且,业务代码中无重复的异常处理逻辑代码,业务代码更加简洁,增加代码的可读性及易维护性,另外,根据异常类型统一进行异常处理,代码异常逻辑及返回编码统一,对于前端开发人员,及第三方对接人员能统一处理接口返回的异常信息。
本发明另一实施例提供一种代码异常处理装置,请参阅图4,该代码异常处理装置包括获取模块11、监听函数确定模块12、异常捕获模块13以及处理模块14。
获取模块11用于获取项目源码,其中,所述项目源码中插入有切面代码文件,所述切面代码文件定义了切面代码文件的生效路径类、切点以及增强方式。
监听函数确定模块12用于根据切面代码文件的生效路径类和切点,确定所述项目源码中需要监听的函数。
异常捕获模块13用于根据所述切面代码文件的增强方式,捕获所述需要监听的函数的异常。
处理模块14用于根据所述切面代码文件的增强方式,对所述异常进行分类处理,以实现对相同类型的异常进行统一处理。
本实施例中,首先获取项目代码,其中,所述项目源码中插入有切面代码文件,所述切面代码文件定义了切面代码文件的生效路径类、切点以及增强方式,之后根据切面代码文件的生效路径类和切点,确定所述项目源码中需要监听的函数,之后根据所述切面代码文件的增强方式,捕获所述需要监听的函数的异常,最后根据所述切面代码文件的增强方式,对所述异常进行分类处理,以实现对相同类型的异常进行统一处理。本发明基于AOP原理实现的异常统一处理,可以有效的捕获代码异常,开发人员只需要关注业务代码逻辑实现,无需重复开发代码异常处理逻辑,减少代码开发量,提升开发效率,而且,业务代码中无重复的异常处理逻辑代码,业务代码更加简洁,增加代码的可读性及易维护性,另外,根据异常类型统一进行异常处理,代码异常逻辑及返回编码统一,对于前端开发人员,及第三方对接人员能统一处理接口返回的异常信息。
需要说明的是,本发明所称的模块是指能够完成特定功能的一系列计算机程序指令段,比程序更适合于描述代码异常处理的执行过程,各模块的具体实施方式请参考上述对应的方法实施例,此处不再赘述。
在一些实施例中,所述增强方式为环绕增强方式。
在一些实施例中,所述切点为生效路径类下的所有函数。
在一些实施例中,所述监听函数确定模块12具体用于:
根据所述切面代码文件的生效路径类,确定所述项目源码中需要监听的目标类;
根据所述目标类以及所述切点,确定所述目标类下需要监听的函数。
在一些实施例中,所述异常捕获模块13具体用于:
根据所述切面代码文件的增强方式,获取所述需要监听的函数的函数信息,其中,所述函数信息包括类名、方法名以及请求参数列表中的至少一种;
采用预设的异常测试语句对所述函数信息进行处理,以获取所述函数信息中的异常。
在一些实施例中,所述处理模块14具体用于:
根据所述切面代码文件的增强方式,确定所述异常的异常信息,并将所述异常信息作为所述切面代码文件的返回对象,其中,所述异常信息用于表示所述异常的类型。
在一些实施例中,所述异常信息至少包括异常类型、异常代码以及异常堆栈信息。
本发明另一实施例提供一种电子设备,如图5所示,电子设备10包括:
一个或多个处理器110以及存储器120,图5中以一个处理器110为例进行介绍,处理器110和存储器120可以通过总线或者其他方式连接,图5中以通过总线连接为例。
处理器110用于完成电子设备10的各种控制逻辑,其可以为通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、单片机、ARM(Acorn RISCMachine)或其它可编程逻辑器件、分立门或晶体管逻辑、分立的硬件组件或者这些部件的任何组合。还有,处理器110还可以是任何传统处理器、微处理器或状态机。处理器110也可以被实现为计算设备的组合,例如,DSP和微处理器的组合、多个微处理器、一个或多个微处理器结合DSP和/或任何其它这种配置。
存储器120作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本发明实施例中的代码异常处理方法对应的程序指令。处理器110通过运行存储在存储器120中的非易失性软件程序、指令以及单元,从而执行电子设备10的各种功能应用以及数据处理,即实现上述方法实施例中的代码异常处理方法。
存储器120可以包括存储程序区和存储数据区,其中,存储程序区可存储操作平台、至少一个功能所需要的应用程序;存储数据区可存储根据电子设备10使用所创建的数据等。此外,存储器120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器120可选包括相对于处理器110远程设置的存储器,这些远程存储器可以通过网络连接至电子设备10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
一个或者多个单元存储在存储器120中,当被一个或者多个处理器110执行时,执行上述任意方法实施例中的代码异常处理方法,例如,执行以上描述的图1中的方法步骤S100至步骤S400。
本发明另一实施例提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,例如,执行以上描述的图1中的方法步骤S100至步骤S400。
作为示例,计算机可读存储介质能够包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦ROM(EEPROM)或闪速存储器。易失性存储器能够包括作为外部高速缓存存储器的随机存取存储器(RAM)。通过说明而非限制,RAM可以以诸如同步RAM(SRAM)、动态RAM、(DRAM)、同步DRAM(SDRAM)、双数据速率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、Synchlink DRAM(SLDRAM)以及直接Rambus(兰巴斯)RAM(DRRAM)之类的许多形式得到。本文中所描述的操作环境的所公开的存储器组件或存储器旨在包括这些和/或任何其他适合类型的存储器中的一个或多个。
综上所述,本发明提供的代码异常处理方法、装置、电子设备及存储介质,首先获取项目代码,其中,所述项目源码中插入有切面代码文件,所述切面代码文件定义了切面代码文件的生效路径类、切点以及增强方式,之后根据切面代码文件的生效路径类和切点,确定所述项目源码中需要监听的函数,之后根据所述切面代码文件的增强方式,捕获所述需要监听的函数的异常,最后根据所述切面代码文件的增强方式,对所述异常进行分类处理,以实现对相同类型的异常进行统一处理。本发明基于AOP原理实现的异常统一处理,可以有效的捕获代码异常,开发人员只需要关注业务代码逻辑实现,无需重复开发代码异常处理逻辑,减少代码开发量,提升开发效率,而且,业务代码中无重复的异常处理逻辑代码,业务代码更加简洁,增加代码的可读性及易维护性,另外,根据异常类型统一进行异常处理,代码异常逻辑及返回编码统一,对于前端开发人员,及第三方对接人员能统一处理接口返回的异常信息。
以上所述本发明的具体实施方式,并不构成对本发明保护范围的限定。任何根据本发明的技术构思所做出的各种其他相应的改变与变形,均应包含在本发明权利要求的保护范围内。

Claims (10)

1.一种代码异常处理方法,其特征在于,包括如下步骤:
获取项目源码,其中,所述项目源码中插入有切面代码文件,所述切面代码文件定义了切面代码文件的生效路径类、切点以及增强方式;
根据切面代码文件的生效路径类和切点,确定所述项目源码中需要监听的函数;
根据所述切面代码文件的增强方式,捕获所述需要监听的函数的异常;
根据所述切面代码文件的增强方式,对所述异常进行分类处理,以实现对相同类型的异常进行统一处理。
2.根据权利要求1所述的代码异常处理方法,其特征在于,所述增强方式为环绕增强方式。
3.根据权利要求2所述的代码异常处理方法,其特征在于,所述切点为生效路径类下的所有函数。
4.根据权利要求1所述的代码异常处理方法,其特征在于,根据切面代码文件的生效路径类和切点,确定所述项目源码中需要监听的函数,包括:
根据所述切面代码文件的生效路径类,确定所述项目源码中需要监听的目标类;
根据所述目标类以及所述切点,确定所述目标类下需要监听的函数。
5.根据权利要求2所述的代码异常处理方法,其特征在于,所述根据所述切面代码文件的增强方式,捕获所述需要监听的函数的异常,包括:
根据所述切面代码文件的增强方式,获取所述需要监听的函数的函数信息,其中,所述函数信息包括类名、方法名以及请求参数列表中的至少一种;
采用预设的异常测试语句对所述函数信息进行处理,以获取所述函数信息中的异常。
6.根据权利要求2所述的代码异常处理方法,其特征在于,所述根据所述切面代码文件的增强方式,对所述异常进行分类处理,包括:
根据所述切面代码文件的增强方式,确定所述异常的异常信息,并将所述异常信息作为所述切面代码文件的返回对象,其中,所述异常信息用于表示所述异常的类型。
7.根据权利要求6所述的代码异常处理方法,其特征在于,所述异常信息至少包括异常类型、异常代码以及异常堆栈信息。
8.一种代码异常处理装置,其特征在于,包括:
获取模块,用于获取项目源码,其中,所述项目源码中插入有切面代码文件,所述切面代码文件定义了切面代码文件的生效路径类、切点以及增强方式;
监听函数确定模块,用于根据切面代码文件的生效路径类和切点,确定所述项目源码中需要监听的函数;
异常捕获模块,用于根据所述切面代码文件的增强方式,捕获所述需要监听的函数的异常;
处理模块,用于根据所述切面代码文件的增强方式,对所述异常进行分类处理,以实现对相同类型的异常进行统一处理。
9.一种电子设备,其特征在于,包括:处理器和存储器;
所述存储器上存储有可被所述处理器执行的计算机程序;
所述处理器执行所述计算机程序时实现如权利要求1-7任意一项所述的代码异常处理方法中的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如权利要求1-7任意一项所述的代码异常处理方法中的步骤。
CN202211379631.XA 2022-11-04 2022-11-04 一种代码异常处理方法、装置、电子设备及存储介质 Pending CN115687128A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211379631.XA CN115687128A (zh) 2022-11-04 2022-11-04 一种代码异常处理方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211379631.XA CN115687128A (zh) 2022-11-04 2022-11-04 一种代码异常处理方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN115687128A true CN115687128A (zh) 2023-02-03

Family

ID=85050083

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211379631.XA Pending CN115687128A (zh) 2022-11-04 2022-11-04 一种代码异常处理方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN115687128A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115828247A (zh) * 2023-02-10 2023-03-21 支付宝(杭州)信息技术有限公司 一种小程序的异常检测方法、装置、设备及可读存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115828247A (zh) * 2023-02-10 2023-03-21 支付宝(杭州)信息技术有限公司 一种小程序的异常检测方法、装置、设备及可读存储介质

Similar Documents

Publication Publication Date Title
US7975257B2 (en) Iterative static and dynamic software analysis
Liu et al. Understanding and detecting wake lock misuses for android applications
US10705811B2 (en) Method and system for automated, static instrumentation for applications designed for execution in environments with restricted resources, like mobile devices or TV set top boxes
US9274923B2 (en) System and method for stack crawl testing and caching
US8166463B2 (en) Method of code coverage utilizing efficient dynamic mutation of logic (EDML)
US8352921B2 (en) Static analysis defect detection in the presence of virtual function calls
US12093398B2 (en) Vulnerability analysis and reporting for embedded systems
CN111930472B (zh) 一种代码调试方法、装置、电子设备及存储介质
US10229273B2 (en) Identifying components for static analysis of software applications
Soetens et al. Change-based test selection: an empirical evaluation
US9405906B1 (en) System and method for enhancing static analysis of software applications
Adamsen et al. Practical AJAX race detection for JavaScript web applications
Arzt et al. The soot-based toolchain for analyzing android apps
CN110879781A (zh) 程序调试方法、装置、电子设备及计算机可读存储介质
CN115687128A (zh) 一种代码异常处理方法、装置、电子设备及存储介质
Sun et al. Mining android api usage to generate unit test cases for pinpointing compatibility issues
US7171650B2 (en) System and method for integrating resources in a network
Schmitz et al. DataRaceOnAccelerator–a micro-benchmark suite for evaluating correctness tools targeting accelerators
Zhong et al. Scalable compositional static taint analysis for sensitive data tracing on industrial micro-services
Vidal et al. Understanding and addressing exhibitionism in Java empirical research about method accessibility
US8892952B2 (en) Preserve status parameter for testing in computing system
CN111931191A (zh) Linux平台二进制软件堆溢漏洞动态检测方法及系统
CN115828262A (zh) 开源组件漏洞扫描方法、装置、设备及存储介质
Sakurai et al. Test-based pointcuts for robust and fine-grained join point specification
Chen et al. Firmware code instrumentation technology for internet of things-based services

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