python - 配置 pyCLI 装饰器以正确地重新引发异常
问题描述
我正在尝试使用 pyCLI @cli.log.LoggingApp 装饰器来创建 CLI 应用程序。虽然它是正确的,但如果代码中的某些内容引发异常,我只会收到“RuntimeError: No active exception to reraise”错误。如果我删除装饰器,则会正确报告异常。
通过文档,我应该能够向装饰器添加类似“reraise =(BaseException)”的内容,以告诉它通过所有异常,但我似乎无法让它工作。
有人可以为我提供一个使用 pyCLI 装饰器的工作示例,该装饰器允许异常在未被代码捕获时通过吗?
我正在尝试的完整装饰器是:
@cli.log.LoggingApp(name="program_name", description="Program Short Description",
date_format='%Y-%m-%d %H:%M:%S', message_format='%(asctime)s | %(filename)s | %(message)s',
reraise=(BaseException))
解决方案
终于有时间深入研究代码了。发生这种情况是因为 pyCLI 模块试图从不同的范围重新引发异常。这是模块中的一个错误。我正在向作者提交补丁。
推荐阅读
- c - 只有 main() 函数在 C 中执行
- java - 启用 CORS 支持 Spring Boot
- javascript - 如何使用 i18n 定义 Currency-per-Kg 数字格式?
- javascript - window.open 打开一个弹出窗口而不是一个新窗口
- php - 我无法使用 Auth::attempt php laravel 登录
- sql - 在条件不匹配的地方显示 0
- flutter - flutter just_audio中音频标题之间的疑问
- python - 使用用户输入设置 Pygame 显示大小
- mysql - mysql join 性能慢
- android - 当连接未正确关闭时,为什么使用 WAL 模式的 SQLite 数据库中的数据会丢失?