Python 如何检查TypeError是否适用于非类型

Python 如何检查TypeError是否适用于非类型,python,exception,Python,Exception,我正在测试我编写的一些代码,当正常运行时,它可能会引发各种类型的TypeError,其中“NoneType”对象是不可编辑的。由于这是意料之中的,所以我希望在不无意中隐藏其他类型错误的情况下,按实际情况处理这一问题 我如何测试我的TypeError是否是因为“非类型”,而不是因为其他原因?我已经查看了TypeError的属性,但似乎无法理解哪个属性会告诉我错误的原因。您实际上是在尝试检查无类型,因为您收到的错误直接表明您正在尝试迭代某个无的变量。我将使用经典的python检查None来确定何时出

我正在测试我编写的一些代码,当正常运行时,它可能会引发各种类型的TypeError,其中“NoneType”对象是不可编辑的。由于这是意料之中的,所以我希望在不无意中隐藏其他类型错误的情况下,按实际情况处理这一问题


我如何测试我的TypeError是否是因为“非类型”,而不是因为其他原因?我已经查看了TypeError的属性,但似乎无法理解哪个属性会告诉我错误的原因。

您实际上是在尝试检查
无类型,因为您收到的错误直接表明您正在尝试迭代某个
无的变量。我将使用经典的python检查
None
来确定何时出现这种情况:

if my_iterable_collection is None:
    ... no good
else:
    ... we're good

这就是我如何尝试发现并提出
None
相关问题,而不是使用
try/catch
。您将知道确切的错误与高度粒度的
None
有关。

一个选项是在迭代之前检查项目是否
None
,而不是使用
try/except
。另一个类似的方法是
for items in items或[]
。如果你能做到这一点,首先检查一下,它通常会更优雅。如果结果为无,为什么不
?我错了,我同意,它已经被更改了!谢谢@Jean Françoisfare