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