为代码添加异常处理模块的方法及装置与流程

文档序号:28682799发布日期:2022-01-29 10:07阅读:来源:国知局

技术特征:
1.一种为代码添加异常处理模块的方法,其特征在于,包括:将待添加异常处理模块的代码解析为抽象语法树;确定出所述抽象语法树中的待处理函数;根据所述抽象语法树确定出待处理函数的函数名称和函数位置信息;根据待处理函数的函数体内容、函数名称以及函数位置信息生成待处理函数对应的异常处理模块;用异常处理模块替换掉所述抽象语法树中对应的待处理函数的函数体内容,得到处理后的抽象语法树,并将处理后的抽象语法树转化为代码,得到添加异常处理模块后的代码。2.根据权利要求1所述的为代码添加异常处理模块的方法,其特征在于,根据待处理函数的函数体内容、函数名称以及函数位置信息生成待处理函数对应的异常处理模块,具体包括:根据待处理函数的函数名称、待处理函数的函数位置信息以及预设的错误信息生成catch语句;根据待处理函数的函数体内容生成try语句;根据所述catch语句和所述try语句生成待处理函数对应的异常处理模块。3.根据权利要求1所述的为代码添加异常处理模块的方法,其特征在于,所述确定出所述抽象语法树中的待处理函数,具体包括:识别所述抽象语法树中的函数;若识别出的函数的函数注释中不存在有不添加异常处理标识,则确定该识别出的函数为待处理函数。4.根据权利要求3所述的为代码添加异常处理模块的方法,其特征在于,所述若识别出的函数的函数注释中不存在有不添加异常处理标识,则确定该识别出的函数为待处理函数,具体包括:若识别出的函数的函数注释中不存在有不添加异常处理标识,并且该识别出的函数的函数体内容多于预设行,则确定该识别出的函数为待处理函数。5.根据权利要求1所述的为代码添加异常处理模块的方法,其特征在于,所述根据所述抽象语法树确定出待处理函数的函数名称和函数位置信息,具体包括:若待处理函数为函数声明,从函数声明抽象语法树中id属性下的name属性获取函数名称,从函数声明抽象语法树中loc属性下的start属性中的line属性获取函数位置信息。6.根据权利要求1所述的为代码添加异常处理模块的方法,其特征在于,所述根据所述抽象语法树确定出待处理函数的函数名称和函数位置信息,具体包括:若待处理函数为函数表达式,从函数表达式抽象语法树的变量声明中的declarations的id属性下的name属性获取函数名称,从函数表达式抽象语法树中loc属性下的start属性中的line属性获取函数位置信息。7.根据权利要求1所述的为代码添加异常处理模块的方法,其特征在于,所述根据所述抽象语法树确定出待处理函数的函数名称和函数位置信息,具体包括:若待处理函数为箭头函数,将箭头函数作为函数名称,从箭头函数抽象语法树中loc属性下的start属性中的line属性获取函数位置信息。8.根据权利要求1所述的为代码添加异常处理模块的方法,其特征在于,所述根据所述
抽象语法树确定出待处理函数的函数名称和函数位置信息,具体包括:若待处理函数为类函数,从类函数抽象语法树中的classmethod中key属性下的name属性获取函数名称,从类函数抽象语法树中loc属性下的start属性中的line属性获取函数位置信息。9.一种为代码添加异常处理模块的装置,其特征在于,包括:代码解析单元,用于将待添加异常处理模块的代码解析为抽象语法树;待处理函数确定单元,用于确定出所述抽象语法树中的待处理函数;函数信息确定单元,用于根据所述抽象语法树确定出待处理函数的函数名称和函数位置信息;异常处理模块生成单元,用于根据待处理函数的函数体内容、函数名称以及函数位置信息生成待处理函数对应的异常处理模块;异常处理模块添加单元,用于用异常处理模块替换掉所述抽象语法树中对应的待处理函数的函数体内容,得到处理后的抽象语法树,并将处理后的抽象语法树转化为代码,得到添加异常处理模块后的代码。10.根据权利要求9所述的为代码添加异常处理模块的装置,其特征在于,所述异常处理模块生成单元包括:catch语句生成模块,用于根据待处理函数的函数名称、待处理函数的函数位置信息以及预设的错误信息生成catch语句;try语句生成模块,用于根据待处理函数的函数体内容生成try语句;异常处理模块生成模块,用于根据所述catch语句和所述try语句生成待处理函数对应的异常处理模块。11.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至8任一项所述的方法。12.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序在计算机处理器中执行时实现如权利要求1至8任意一项所述的方法。

技术总结
本发明实施例公开了一种为代码添加异常处理模块的方法及装置,该方法包括:将待添加异常处理模块的代码解析为抽象语法树;确定出所述抽象语法树中的待处理函数;根据所述抽象语法树确定出待处理函数的函数名称和函数位置信息;根据待处理函数的函数体内容、函数名称以及函数位置信息生成待处理函数对应的异常处理模块;用异常处理模块替换掉所述抽象语法树中对应的待处理函数的函数体内容,得到处理后的抽象语法树,并将处理后的抽象语法树转化为代码,得到添加异常处理模块后的代码。本发明有助于提高为代码添加异常处理模块的效率。率。率。


技术研发人员:孟繁贵 梁锐
受保护的技术使用者:中国建设银行股份有限公司
技术研发日:2021.10.29
技术公布日:2022/1/28
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1