我想在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并且脚本失败。
怎么了?
谢谢!
答案 0 :(得分:1)
当except块中发生新异常时,就会发生这种情况。
例如:
try:
print('foo')
raise ValueError
except:
print('noes!')
print(1/0)
将被零除异常退出。
为了确定是否如此,我们需要您提供更多的实际代码,尤其是两个除外的块。
如果要确保捕获“任何”异常,请确保您的except块无异常。