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

标签 python exception

我在 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 在逻辑上尽可能短,这样您就有更好的机会以适当的本地化方式处理错误。

关于 python 尝试: except: pass; on multi line try statements,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19081515/

相关文章:

Python ~ 访问模板类中的元组成员

python - 为什么 xpath 只选择 <ul> 中的最后一个 <li>?

python - Python 中匹配非空格的正则表达式

python - 在 iPython 中移动到行首的键盘快捷键是什么?

c# - 仅出于内部函数中异常报告的目的包含参数

python - 如何在Python中的两个不同类之间进行运算符重载

c++ - 如何分析和捕获 C++ 中的双重删除和内存损坏

java - 查找异常类型

java - 在抛出之前更改异常原因消息?

java - 在 Java 中捕获通用异常?