最近在 PyCharm 中写代码的时候会抱怨 Exception
没有指定错误类型
Too broad exception clause...
这是因为捕获的异常过于宽泛,没有针对性,可以通过指定精确的异常类型来解决
-
BaseException
: 所有异常的基类 -
SystemExit
: 解释器请求退出 -
KeyboardInterrupt
: 用户中断执行(通常是输入^C) -
Exception
: 常规错误的基类 -
StopIteration
: 迭代器没有更多的值 -
GeneratorExit
: 生成器(generator)发生异常来通知退出 -
StandardError
: 所有的内建标准异常的基类 -
ArithmeticError
: 所有数值计算错误的基类 -
FloatingPointError
: 浮点计算错误 -
OverflowError
: 数值运算超出最大限制 -
ZeroDivisionError
: 除(或取模)零 (所有数据类型) -
AssertionError
: 断言语句失败 -
AttributeError
: 对象没有这个属性 -
EOFError
: 没有内建输入,到达EOF 标记 -
EnvironmentError
: 操作系统错误的基类 -
IOError
: 输入/输出操作失败 -
OSError
: 操作系统错误 -
WindowsError
: 系统调用失败 -
ImportError
: 导入模块/对象失败 -
LookupError
: 无效数据查询的基类 -
IndexError
: 序列中没有此索引(index) -
KeyError
: 映射中没有这个键 -
MemoryError
: 内存溢出错误(对于Python 解释器不是致命的) -
NameError
: 未声明/初始化对象 (没有属性) -
UnboundLocalError
: 访问未初始化的本地变量 -
ReferenceError
: 弱引用(Weak reference)试图访问已经垃圾回收了的对象 -
RuntimeError
: 一般的运行时错误 -
NotImplementedError
: 尚未实现的方法 -
SyntaxError
: Python 语法错误 -
IndentationError
: 缩进错误 -
TabError
: Tab 和空格混用 -
SystemError
: 一般的解释器系统错误 -
TypeError
: 对类型无效的操作 -
ValueError
: 传入无效的参数 -
UnicodeError
: Unicode 相关的错误 -
UnicodeDecodeError
: Unicode 解码时的错误 -
UnicodeEncodeError
: Unicode 编码时错误 -
UnicodeTranslateError
: Unicode 转换时错误 -
Warning
: 警告的基类 -
DeprecationWarning
: 关于被弃用的特征的警告 -
FutureWarning
: 关于构造将来语义会有改变的警告 -
OverflowWarning
: 旧的关于自动提升为长整型(long)的警告 -
PendingDeprecationWarning
: 关于特性将会被废弃的警告 -
RuntimeWarning
: 可疑的运行时行为(runtime behavior)的警告 -
SyntaxWarning
: 可疑的语法的警告 -
UserWarning
: 用户代码生成的警告
如果不确定有可能发生的错误,或者是就要使用 Exception
而且还不许 PyCharm 抱怨,那该怎么解决?
1. 关闭编译器中代码检测中有关检测 Exception
的选项
2. 在 try
语句前加入 # noinspection PyBroadException
即可
# noinspection PyBroadException
try:
pass
except Exception as e:
pass