使用“无”时尝试/除外错误

hui*_*che 2 python try-catch except

我有一些不按预期运行的代码。我已经将其浓缩为这里的问题:

item = None

try:
    if item != None:
        print('pass')
except TypeError, e:
    print('fail')
Run Code Online (Sandbox Code Playgroud)

如果项目不是“无”类型,则打印通过。如果项目为 None ,我想引发异常,但是当我将 item 设置为 None 时,没有任何打印出来。

我可以使用 if 语句轻松完成此操作,但我很想知道为什么这不能用作 try/except。

有什么想法吗?

谢谢!

tim*_*geb 5

TypeError在您的try块中没有什么可以提高 a ,它只是检查item !=None. item !=None将是Trueor False,但在任何一种情况下都不会引发错误。

您可以执行以下操作:

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

或者干脆:

item = None
if item != None: # better: if item is not None
    print('pass')
else:
    print('fail')        
Run Code Online (Sandbox Code Playgroud)