异常空语句块检测方法、装置、设备及存储介质制造方法及图纸

技术编号:37326273 阅读:15 留言:0更新日期:2023-04-21 23:05
本发明专利技术涉及软件开发技术领域,公开了一种异常空语句块检测方法、装置、设备及存储介质,该方法包括:将待检测代码文件转换为抽象语法树;确定抽象语法树中各节点语句的语句类型;根据各节点语句的语句类型对待检测代码文件进行异常空语句块检测。本发明专利技术通过将待检测代码文件转换为抽象语法树,根据抽象语法树中各节点语句的语句类型对待检测代码文件进行异常空语句块检测,实现了异常空语句块的自动化检测,在提升检测效率的同时提高了检测准确度。度。度。

【技术实现步骤摘要】
异常空语句块检测方法、装置、设备及存储介质


[0001]本专利技术涉及软件开发
,尤其涉及一种异常空语句块检测方法、装置、设备及存储介质。

技术介绍

[0002]在软件项目开发的过程中,项目源码中可能存在异常的空语句块,该空语句块不会引起语法错误,在编译时也不会报错,只有在程序功能实际运行到该空语句块时才会发生异常,从而导致严重的程序问题,空语句块的存在具有一定的隐蔽性,对软件运行的危害极大,因此在软件上线前需要对程序进行空语句排查,目前一般通过人工代码评审的方式来排查空语句块,不仅耗费时间长,而且准确度低。
[0003]上述内容仅用于辅助理解本专利技术的技术方案,并不代表承认上述内容是现有技术。

技术实现思路

[0004]本专利技术的主要目的在于提供了一种异常空语句块检测方法、装置、设备及存储介质,旨在解决现有技术中空语句块排查的效率和准确度低技术问题。
[0005]为实现上述目的,本专利技术提供了一种异常空语句块检测方法,所述方法包括以下步骤:
[0006]将待检测代码文件转换为抽象语法树;
[0007]确定所述抽象语法树中各节点语句的语句类型;
[0008]根据各节点语句的语句类型对所述待检测代码文件进行异常空语句块检测。
[0009]可选地,所述根据各节点语句的语句类型对所述待检测代码文件进行异常空语句块检测,包括:
[0010]在各节点语句的语句类型中存在类语句时,判断所述类语句对应的子节点中是否存在块语句;
[0011]在所述类语句对应的子节点中存在块语句时,对所述块语句对应的子节点进行遍历,获得所述块语句的子节点语句;
[0012]根据所述子节点语句对所述待检测代码文件进行异常空语句块检测。
[0013]可选地,所述根据所述子节点语句对所述待检测代码文件进行异常空语句块检测,包括:
[0014]在所述子节点语句中存在try语句时,确定所述try语句的第一子语句节点;
[0015]在所述第一子语句节点的目标路径为空时,判定所述待检测代码文件中存在异常空语句块。
[0016]可选地,所述根据各节点语句的语句类型对所述待检测代码文件进行异常空语句块检测,还包括:
[0017]在所述子节点语句中存在catch语句时,确定所述catch语句的第二子语句节点;
[0018]在所述第二子语句节点的目标路径为空时,判定所述待检测代码文件中存在异常空语句块。
[0019]可选地,所述根据各节点语句的语句类型对所述待检测代码文件进行异常空语句块检测,还包括:
[0020]在所述子节点语句中存在finally语句时,确定所述finally语句的第三子语句节点;
[0021]在所述第三子语句节点的目标路径为空时,判定所述待检测代码文件中存在异常空语句块。
[0022]可选地,所述根据各节点语句的语句类型对所述待检测代码文件进行异常空语句块检测,包括:
[0023]判断各节点语句的语句类型中是否存在类语句;
[0024]若不存在,则判定所述待检测代码文件为接口文件,并确定所述待检测代码文件中不存在异常空语句块。
[0025]可选地,所述判断各节点语句的语句类型中是否存在类语句之后,还包括:
[0026]在各节点语句的语句类型中存在类语句时,判断所述类语句的类本体内是否存在方法语句;
[0027]在所述类本体内不存在方法语句时,判定所述待检测代码文件为数据结构体文件,并确定所述待检测代码文件中不存在异常空语句块;以及
[0028]在所述类语句的类本体内存在方法语句时,判断所述方法语句的子节点中是否存在块语句;
[0029]若不存在,则判定所述待检测代码文件为空方法文件,并确定所述待检测代码文件中不存在异常空语句块。
[0030]此外,为实现上述目的,本专利技术还提出一种异常空语句块检测装置,所述装置包括:
[0031]转换模块,用于将待检测代码文件转换为抽象语法树;
[0032]确定模块,用于确定所述抽象语法树中各节点语句的语句类型;
[0033]检测模块,用于根据各节点语句的语句类型对所述待检测代码文件进行异常空语句块检测。
[0034]此外,为实现上述目的,本专利技术还提出一种异常空语句块检测设备,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的异常空语句块检测程序,所述异常空语句块检测程序配置为实现如上文所述的异常空语句块检测方法的步骤。
[0035]此外,为实现上述目的,本专利技术还提出一种存储介质,所述存储介质上存储有异常空语句块检测程序,所述异常空语句块检测程序被处理器执行时实现如上文所述的异常空语句块检测方法的步骤。
[0036]本专利技术将待检测代码文件转换为抽象语法树;确定所述抽象语法树中各节点语句的语句类型;根据各节点语句的语句类型对所述待检测代码文件进行异常空语句块检测。本专利技术通过将待检测代码文件转换为抽象语法树,根据抽象语法树中各节点语句的语句类型对待检测代码文件进行异常空语句块检测,实现了异常空语句块的自动化检测,在提升
检测效率的同时提高了检测准确度。
附图说明
[0037]图1是本专利技术实施例方案涉及的硬件运行环境的异常空语句块检测设备的结构示意图;
[0038]图2为本专利技术异常空语句块检测方法第一实施例的流程示意图;
[0039]图3为本专利技术异常空语句块检测方法第二实施例的流程示意图;
[0040]图4为本专利技术异常空语句块检测方法第三实施例的流程示意图;
[0041]图5为本专利技术异常空语句块检测方法一实施例中异常空语句块检测的流程示意图;
[0042]图6为本专利技术异常空语句块检测装置第一实施例的结构框图。
[0043]本专利技术目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
[0044]应当理解,此处所描述的具体实施例仅用以解释本专利技术,并不用于限定本专利技术。
[0045]参照图1,图1为本专利技术实施例方案涉及的硬件运行环境的异常空语句块检测设备结构示意图。
[0046]如图1所示,该异常空语句块检测设备可以包括:处理器1001,例如中央处理器(Central Processing Unit,CPU),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(Wireless

Fidelity,WI

FI)接口)。存储器1005可以是高速的随机存取存储器(Random Access Memory,RAM),也可以是稳定的非易失本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种异常空语句块检测方法,其特征在于,所述方法包括:将待检测代码文件转换为抽象语法树;确定所述抽象语法树中各节点语句的语句类型;根据各节点语句的语句类型对所述待检测代码文件进行异常空语句块检测。2.如权利要求1所述的方法,其特征在于,所述根据各节点语句的语句类型对所述待检测代码文件进行异常空语句块检测,包括:在各节点语句的语句类型中存在类语句时,判断所述类语句对应的子节点中是否存在块语句;在所述类语句对应的子节点中存在块语句时,对所述块语句对应的子节点进行遍历,获得所述块语句的子节点语句;根据所述子节点语句对所述待检测代码文件进行异常空语句块检测。3.如权利要求2所述的方法,其特征在于,所述根据所述子节点语句对所述待检测代码文件进行异常空语句块检测,包括:在所述子节点语句中存在try语句时,确定所述try语句的第一子语句节点;在所述第一子语句节点的目标路径为空时,判定所述待检测代码文件中存在异常空语句块。4.如权利要求2所述的方法,其特征在于,所述根据各节点语句的语句类型对所述待检测代码文件进行异常空语句块检测,还包括:在所述子节点语句中存在catch语句时,确定所述catch语句的第二子语句节点;在所述第二子语句节点的目标路径为空时,判定所述待检测代码文件中存在异常空语句块。5.如权利要求2所述的方法,其特征在于,所述根据各节点语句的语句类型对所述待检测代码文件进行异常空语句块检测,还包括:在所述子节点语句中存在finally语句时,确定所述finally语句的第三子语句节点;在所述第三子语句节点的目标路径为空时,判定所述待检测代码文件中存在异常空语句块。6....

【专利技术属性】
技术研发人员:方海波鲁阳
申请(专利权)人:浙江吉利控股集团有限公司
类型:发明
国别省市:

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

1