Python从引发异常的点继续

2024-04-29 08:26:17 发布

您现在位置:Python中文网/ 问答频道 /正文

嗨,有没有办法从抛出异常的地方继续? 我有下面的psudo代码

unique code 1
unique code 2
unique code 3

如果我想忽略代码中的任何一个特殊语句,我会忽略它:

^{pr2}$

但这对我来说并不优雅,而且就我的一生而言,我不记得上次我是如何解决这类问题的。。。我想要的是

try:
  unique code 1
  unique code 2
  unique code 3
except:
  continue from last exception raised

更新时间: 原因:我之所以问这个问题,是因为上面3行代码共享同一种异常,比如说,从数组中提取信息,在这个特定的场景中,我并不真正关心不在数组中的值的异常。在


Tags: 代码from地方code数组语句lastunique
2条回答

我们可以使用while循环:

#!/urs/bin/env python 

 check = 0
 while True:
     try:
         if check == 0:
             #unique_code_one ()  
             check += 1
         if check == 1:
             #unique_code_two () 
             check += 1 
         if check == 2:
             #unique_code_three() 
     except: 
         check = 2 

将每个代码段包装成一个函数,然后尝试在for循环中调用每个部分:

def code1():
    #unique code 1

def code2():
    #unique code 2

def code3():
    #unique code 3

for section in [code1, code2, code3]:
    try:
        section()
    except:
        pass

编辑:如果你仍然在寻找另一种方法,你可以使用一个装饰器使每个呼叫“安全”购买返回任何错误,而不是抛出错误。不确定这是否真的是Python式的,还是一种很好的方式,但它确实是一种方式:

^{pr2}$

相关问题 更多 >