Skip to main content
 首页 » 编程设计

python 尝试: except: pass; on multi line try statements

2025年05月04日10lexus

我在 try: except KeyError: pass block 中有一个语句 block ,想知道如何让 Python 尝试在抛出异常的行之后执行代码。

例如

try: 
  print "entering try block" 
  print this_var_does_not_exists 
  print "past exception" 
except: 
  pass 

我想尝试打印 "past exception"。

当我运行上面的代码时,它只打印'entering try block'

请您参考如下方法:

Python 不允许您重新输入失败的 block 。相反,您可以制作一个嵌套的 try block :

try: 
    print "before" 
    try: 
        print d['not-exist'] 
    except KeyError: 
        pass 
    print "after" 
except OtherError: 
    print "OtherError" 

请注意,您通常可以使用 .get 避免 KeyError:

try: 
    x = d['key'] 
except KeyError: 
    x = 0 

相当于

x = d.get('key', 0) 

一般,尝试使您的 try block 在逻辑上尽可能短,这样您就有更好的机会以适当的本地化方式处理错误。