使用'None'时的Try/Except错误

2024-04-24 07:12:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一些代码没有按预期运行。 我把问题归结为:

item = None

try:
    if item != None:
        print('pass')
except TypeError, e:
    print('fail')

如果项目不是“None”类型,则打印pass。我想提出一个例外 如果项目为“无”,则当我将“项目”设置为“无”时,将不打印任何内容。

我可以用if语句很容易地做到这一点,但我很想知道为什么这不能作为try/except。

有什么想法吗?

谢谢!


Tags: 项目代码none类型内容ifpass语句
3条回答

在您的try块中没有任何东西可以引发TypeError,它只是检查item !=Noneitem !=None将是TrueFalse,但在这两种情况下都不会引发错误。

您可以执行以下操作:

item = None
try:
    if item != None: # better: if item is not None
        print('pass')
    else:        
        raise TypeError 
except TypeError:
    print('fail')

或者简单地说:

item = None
if item != None: # better: if item is not None
    print('pass')
else:
    print('fail')        

更像Python的方式:

item = None
result = 'pass' if item is not None else 'fail'
print result

如果您真的想在itemNone时引发异常,最简单的方法是

if item is None:
    raise TypeError("'None' value provided for item of farkling routine")

如前所述,在您的示例中,您没有导致触发except子句的任何异常。但我可能误解了你的问题。

相关问题 更多 >