一个检查盲除语句的flake8扩展
项目描述
一个flake8扩展,用于检查盲、通配except:和except Exception:语句。
截至pycodestyle 2.1.0,"E722 不要使用裸except,指定异常"已内置。然而,裸的Exception和BaseException仍然被允许。此扩展将它们标记为B902。
在没有明确指定要捕获哪些异常的情况下使用except通常被认为是不良做法,因为它会捕获系统信号,如SIGINT。你可能希望以不同于代码中发生的异常的方式来处理系统中断。
通常更好的风格是使用多个小的try-except块捕获特定的异常,而不是在底部有一个巨大的try:块和通配的except:。对于其他程序员来说,在代码的特定部分中更具体地说明他们可以期望哪些异常,以及当它们发生时应该如何处理,也是一件好事。
以下代码示例将无法通过此检查
try:
something_scary()
except:
everybody_panic()
但是,以下代码是有效的
try:
something_terrifying()
except TerrifyingException:
dont_panic()
安装
如果你还没有安装,请安装flake8
$ pip install flake8
然后,安装此扩展
$ pip install flake8-blind-except
使用
运行以下命令以验证插件是否已正确安装
$ flake8 --version 2.0 (pep8: 1.4.6, flake8-blind-except: 0.1.0, pyflakes: 0.7.3)
现在,当你运行flake8时,插件将自动使用。
当找到盲除异常时,flake8 将输出
B901 blind except: statement
或者
B902 blind except Exception: statement
贡献
我最近没有在写Python,所以可能不会很快更新。不过欢迎提交PR!
测试
可以使用 pytest --doctest-modules flake8_blind_except.py 运行测试。
变更
0.2.1 - 2022-03-08
从install_requires中移除了setuptools (#8)
0.2.0 - 2021-01-07
为捕获盲 Exception 的情况添加了B902错误。
0.1.1 - 2016-06-27
pep8 在其2.0版本中更名为 pycodestyle。为此变更提供了兼容性更新。
0.1.0 - 2014-02-07
初始发布
注意
我已经使用flake8 2.6.2 + Python 2.7.3和flake8 3.7.9 + Python 3.7.5测试了这个包。
项目详情
flake8-blind-except-0.2.1.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | f25a575a9dcb3eeb3c760bf9c22db60b8b5a23120224ed1faa9a43f75dd7dd16 |
|
MD5 | 8bef9ece23e009de0d34ebde7b6769c5 |
|
BLAKE2b-256 | bef8cb5e0b8c948cb347b8942cb7ce73292a77ec8f9eafb8d5db999c5c1ac62f |