如何在 list comprehension 中捕获 python 异常
在 Python 中没有内置函数可以让你处理或忽略一个异常,所以不可能在一个列表理解中处理所有的异常,因为一个列表理解包含一个或多个表达式;只有语句可以捕获/忽略/处理异常。
将容易产生异常的子表达式的评估委托给一个函数,是一个可行的解决方法;其他的是对可能引发异常的值进行检查。
我们处理这个问题的方法是使用下面的代码。
例子
foo = (5,7,1,0,9)
def bar(self):
try:
return [1/i for i in foo]
except ZeroDivisionError as e:
print e
bar(foo)
输出
integer division or modulo by zero
Process finished with exit code 0