python - 捕获异常并继续 Python 中的 try block

标签 python exception

异常发生后能否返回执行try block ?

例如:

try:
    do_smth1()
except:
    pass

try:
    do_smth2()
except:
    pass

对比

try:
    do_smth1()
    do_smth2()
except:
    ??? # magic word to proceed to do_smth2() if there was exception in do_smth1

最佳答案

不,你不能那样做。这就是 Python 的语法。一旦你因为异常退出了 try-block,就没有办法再进去了。

那么 for 循环呢?

funcs = do_smth1, do_smth2

for func in funcs:
    try:
        func()
    except Exception:
        pass  # or you could use 'continue'

但是请注意,只有 except 被认为是一种不好的做法。您应该改为捕获特定异常。我为 Exception 捕获,因为在不知道方法可能抛出什么异常的情况下,我可以做到这一点。

关于python - 捕获异常并继续 Python 中的 try block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19522990/

相关文章:

python - python 中的新行列表

python - 将元素附加到数组列表(以最简洁的惯用方式)

sql - SQL INNER JOIN异常

exception - 在 "No viable alternative at input"中包含空格 - ANTLR4 中的异常

用于数据转换的 Python 设计模式

python - 使用 SAS 将文件上传到 Azure

python - Pandas :按日历周分组,然后为实际日期时间绘制分组条形图

android - 如何修复 android 中的 BadTokenException 错误?

exception - .NET 2.0 与 .NET 4.0 加载错误

java - Spring Boot 中的异常处理