跳转到主要内容

一个检查盲除语句的flake8扩展

项目描述

一个flake8扩展,用于检查盲、通配except:except Exception:语句。

截至pycodestyle 2.1.0,"E722 不要使用裸except,指定异常"已内置。然而,裸的ExceptionBaseException仍然被允许。此扩展将它们标记为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 (3.7 kB 查看哈希值)

上传时间 源代码

由以下支持