在python中引发延迟异常?

时间:2017-02-09 18:30:44

标签: python python-3.x exception

我想知道在这个用例的python中是否有一个标准机制:

try:
    do_a()
    if something_happens():
        raise DelayedException # is really only raised after do_b()
    do_b()
except DelayedException as de:
    # handle de after the entire try/except block completed

我显然可以将异常信息存储在变量中以便稍后处理,但我想知道python中是否有这样的机制(3.x如果这会产生影响)。

编辑: 为了澄清,在我的用例中,异常处理需要do_b()的结果。

1 个答案:

答案 0 :(得分:1)

是的,但它很难看:

try:
    do_a()
    try:
        if do_something():
            raise DelayedException()
    finally:
        do_b()
except DelayedException:
    pass