Python3-使用except

时间:2020-10-08 08:18:07

标签: python-3.x exception try-catch

我想在Python3中捕获任何类型的错误。

我正在尝试类似的事情:

try:
   fields = line.split(' ')
   ...
   <PostgreSQL query execution>

except psycopg2.Error:
                    conn.rollback()
                    QUERY = "UPDATE table SET error='sql'"
                    cur = conn.cursor()
                    cur.execute(QUERY)
                    conn.commit()
                    cur.close()
                    continue
except:
                    conn.rollback()
                    e="generic"
                    QUERY = "UPDATE table SET error='generic'"
                    cur = conn.cursor()
                    cur.execute(QUERY)
                    conn.commit()
                    cur.close()
                    continue
                    

但是我注意到,例如,没有捕获到IndexError并且脚本失败。

怎么了?

谢谢!

1 个答案:

答案 0 :(得分:1)

当except块中发生新异常时,就会发生这种情况。

例如:

try:
    print('foo')
    raise ValueError
except:
    print('noes!')
    print(1/0)

将被零除异常退出。

为了确定是否如此,我们需要您提供更多的实际代码,尤其是两个除外的块。

如果要确保捕获“任何”异常,请确保您的except块无异常。