[发明专利]一种过滤自定义Python脚本函数调用堆栈的方法有效
| 申请号: | 202210058112.7 | 申请日: | 2022-01-19 |
| 公开(公告)号: | CN114490368B | 公开(公告)日: | 2022-10-14 |
| 发明(设计)人: | 蒋烁淼;周逸灵 | 申请(专利权)人: | 上海驻云信息科技有限公司 |
| 主分类号: | G06F11/36 | 分类号: | G06F11/36 |
| 代理公司: | 北京中索知识产权代理有限公司 11640 | 代理人: | 高海涛 |
| 地址: | 201203 上海市浦东新区中*** | 国省代码: | 上海;31 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 过滤 自定义 python 脚本 函数 调用 堆栈 方法 | ||
本发明提供一种过滤自定义Python脚本函数调用堆栈的方法,包括:平台服务器接收平台前端的脚本执行请求,执行脚本并在自定义脚本的外层捕捉报错信息;调用异常解析函数逐层解析报错的函数调用堆栈;过滤函数调用堆栈;将过滤后的函数调用堆栈重新格式化;平台服务器通过HTTP响应将过滤并重新格式化后的函数调用堆栈信息返回平台前端,平台前端将函数调用堆栈信息展示在Web界面中。本发明利用Python内置的堆栈解析工具,依次解析函数调用堆栈中的每一层,剔除了与平台相关的堆栈信息,实现了对用户自定义脚本中报错后输出的堆栈进行过滤,隐藏了平台代码相关内容的处理,达到了保护平台代码不被暴露的效果。
技术领域
本发明涉及计算机程序设计技术领域,具体而言,涉及一种过滤自定义Python脚本函数调用堆栈的方法。
背景技术
在支持用户自定义Python脚本的系统中,对于用户编写自定义Python脚本在运行出错时,Python程序会中断处理并输出函数调用堆栈。然而由于平台属于用户自定义脚本的调用方,因此Python程序输出的函数调用堆栈也会把平台相关的代码信息一并输出。这样一方面会对用户调试自己编写的代码带来困扰,另一方面也会一定程度上导致平台代码结构的暴露。
支持在主程序中执行用户自定义脚本的平台,对于所执行的脚本的报错,要么就原样输出包含平台本身代码的函数堆栈信息,要么只会输出最终错误内容,即:不输出堆栈信息,只输出错误信息。
发明内容
鉴于此,本发明的目的在于对执行用户自定义Python脚本报错后输出的堆栈信息进行过滤,去除平台相关代码信息,增强系统的安全性。
本发明利用Python内置的堆栈解析工具,依次解析函数调用堆栈中的每一层,剔除与平台相关的堆栈信息,实现对用户自定义脚本中报错后输出的堆栈进行过滤,隐藏平台代码相关内容的处理。
本发明方法的实现核心在于捕获直接从用户脚本中跑错的错误,解析并遍历后剔除和平台相关内容的处理。
本发明提供一种过滤自定义Python脚本函数调用堆栈的方法,包括以下步骤:
a1、在平台Web界面编辑脚本代码,选择执行脚本,通过平台前端向平台服务器发送脚本执行请求;
a2、平台服务器接收到脚本执行请求后,执行脚本并在用户自定义脚本的外层捕捉报错信息;
a3、调用Python自带的异常解析函数逐层解析所述报错信息的函数调用堆栈;
a4、过滤函数调用堆栈,剔除与平台代码相关的堆栈;
a5、将过滤后的函数调用堆栈重新格式化并返回平台服务器;
a6、平台服务器通过HTTP响应将过滤并重新格式化后的函数调用堆栈信息返回平台前端,平台前端接收到HTTP响应后,将函数调用堆栈信息展示在Web界面中,供用户查看。
进一步地,所述a2步骤的所述脚本执行请求的内容包括所需执行的脚本ID、所需执行的函数名。
进一步地,所述a2步骤的所述执行脚本并在用户自定义脚本的外层捕捉报错信息的方法包括:调用runscript函数run_script(user_script)来执行用户脚本,并使用Python异常处理try...except捕获从脚本运行中抛出的错误。
进一步地,所述a3步骤的所述调用Python自带的异常解析函数逐层解析报错的函数调用堆栈的方法包括:
在错误处理except代码块中,调用Python自带的sys.exc_info函数,获取异常堆栈数据tb;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海驻云信息科技有限公司,未经上海驻云信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210058112.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种具有干燥功能的墙壁划线装置
- 下一篇:一种工程造价数据管理方法





