预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共14页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

(19)中华人民共和国国家知识产权局(12)发明专利申请(10)申请公布号CN114327495A(43)申请公布日2022.04.12(21)申请号202111616486.8(22)申请日2021.12.27(71)申请人城云科技(中国)有限公司地址310052浙江省杭州市滨江区长河街道江南大道588号恒鑫大厦主楼17层、18层(72)发明人毛云青王泽宇谢淼烽杨恒飞(74)专利代理机构杭州汇和信专利代理有限公司33475代理人薛文玲(51)Int.Cl.G06F8/51(2018.01)G06F8/41(2018.01)G06F8/73(2018.01)G06F11/30(2006.01)权利要求书2页说明书7页附图4页(54)发明名称基于AST的异常捕获代码注入方法、装置及其应用(57)摘要本申请提出了一种基于AST的异常捕获代码注入方法、装置及其应用,该方法包括:获取第一源代码,并根据第一源代码生成第一抽象语法树,第一抽象语法树包括至少一节点;遍历第一抽象语法树的每一节点,将包含await关键字的节点作为目标节点,并对应每一所目标节点创建对应的替换节点组,其中替换节点组包括空白try节点和catch节点;将每一目标节点填充到替换节点组中的空白try节点内,并用替换节点组替代第一抽象语法树中对应的目标节点得到第二抽象语法树;将第二抽象语法树转换为新的源代码作为第二源代码。该方法减少了源代码中大量重复的代码编写工作,对于多异步函数并行的情况,只会在异步函数最外层进行异常捕获和异常抛出,提高代码的精简程度。CN114327495ACN114327495A权利要求书1/2页1.基于AST的异常捕获代码注入方法,其特征在于,包括以下步骤:获取第一源代码,并根据所述第一源代码生成第一抽象语法树,所述第一抽象语法树包括至少一节点;遍历所述第一抽象语法树的每一所述节点,将包含await关键字的节点作为目标节点,并对应每一所目标节点创建对应的替换节点组,其中所述替换节点组包括空白try节点和catch节点;将每一所述目标节点填充到所述替换节点组中的所述空白try节点内,并用所述替换节点组替代所述第一抽象语法树中对应的所述目标节点得到第二抽象语法树;将所述第二抽象语法树转换为新的源代码作为第二源代码。2.根据权利要求1所述的基于AST的异常捕获代码注入方法,其特征在于,“遍历所述第一抽象语法树的每一所述节点,将包含await关键字的节点作为目标节点”包括:采用先序遍历方法遍历所述第一抽象语法树,使用await表达式钩子判断所述第一抽象语法树上的每一所述节点是否包含await关键字,将包含await关键字的所述节点作为目标节点。3.根据权利要求1所述的基于AST的异常捕获代码注入方法,其特征在于,“获取第一源代码,并根据所述第一源代码生成第一抽象语法树”包括:获取第一源代码,并在支持ES6的环境下引入babel插件,使用所述babel插件将所述第一源代码转化成第一抽象语法树。4.根据权利要求1所述的基于AST的异常捕获代码注入方法,其特征在于,所述空白try节点对应空白的try代码块,所述catch节点对应catch代码块且挂载于所述空白try节点之后。5.根据权利要求1所述的基于AST的异常捕获代码注入方法,其特征在于,所述方法依赖于bable插件,所述bable插件包括:@babel/parser、@babel/traverse、@babel/type、@babel/core。6.基于AST的异常捕获代码注入装置,其特征在于,包括以下模块:解析模块,用于获取第一源代码,并根据所述第一源代码生成第一抽象语法树,所述第一抽象语法树包括至少一节点;遍历模块,用于遍历所述第一抽象语法树的每一所述节点,将包含await关键字的节点作为目标节点,并对应每一所目标节点创建对应的替换节点组,其中所述替换节点组包括空白try节点和catch节点;替换模块,用于将每一所述目标节点填充到所述替换节点组中的所述空白try节点内,并用所述替换节点组替代所述第一抽象语法树中对应的所述目标节点得到第二抽象语法树;输出模块,用于将所述第二抽象语法树转换为新的源代码作为第二源代码。7.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行权利要求1至5任一所述的基于AST的异常捕获代码注入方法。8.一种计算机程序产品,其特征在于,包括软件代码部分,当所述计算机程序产品在计算机上被运行时,所述软件代码部分用于执行根据权利要求1至5任一项所述的基于AST的异常捕获代码注入方法。9.一种可读存储介质,其特征在于,所述可读存储介质中存储有计算机程序,所述计算2CN114327495A权利要求书2/2页机程5任一项所