可以使用Python assert
检查函数中的特定异常吗?例如,如果我有一个我知道会引发KeyError
的函数,可以assert
检测到它吗?例如:
def get_value(x):
lookup = {'one': 1}
return lookup[x]
assert get_value('two') == KeyError
当我运行这个时,我只得到KeyError
异常。 assert
可以查看这样的内容吗?或者那不是assert
用于什么?
答案 0 :(得分:1)
请参阅:What is the use of "assert" in Python?
assert
用于断言条件,表示验证已满足此条件,否则触发操作。
对于您的用例,您希望捕获异常,因此这是您想要的。
#!/usr/bin/env python
import sys
def get_value(x):
lookup = {'one': 1}
return lookup[x]
try:
get_value('two')
except: # catch *all* exceptions
e = sys.exc_info()
print e
这将捕获异常并打印它。在这种特殊情况下,它将打印如下内容:
(<type 'exceptions.KeyError'>, KeyError('two',), <traceback object at 0x102c71c20>)