首页 > 解决方案 > 调用方法上的 Python 错误处理

问题描述

如果被调用的方法抛出异常,我想继续我的循环。这是一个简单的例子,我的实际代码非常复杂,不想在所有调用的方法中都进行错误处理。

list_of_lists = [['hammerhead', 'great white', 'dogfish'],[0, 1, 2],[9.9, 8.8, 7.7]]

def parse(item):
    item / 1

for list in list_of_lists:
    for item in list:
        try:
            parse(item)
        except ValueError:
            break

一旦遇到 parse 方法,就会引发异常。我希望有一种方法,它只是继续我的循环。(外环)

标签: pythonpython-2.7

解决方案


在这种情况下,您试图将字符串除以引发 aTypeError而不是 a的 int ValueError,这就是您的代码引发错误的原因。如果您想捕获所有可能的错误,您可以这样做:

try:
    parse(item)
except:
    break

不过我不推荐它,因为在您的情况下似乎有很多复杂的函数会引发许多不同的错误,最好不要捕获所有内容,因为您可能会错过一个重要错误。我建议您只运行几次代码以找出所有可能的错误并为每个错误设置一个特定的捕获,以确保不会出现您没有预料到的无关错误


推荐阅读