gpt4 book ai didi

python - 处理多个异常时共享 Python 代码

转载 作者:太空狗 更新时间:2023-10-29 20:42:00 25 4
gpt4 key购买 nike

我编写了一个程序,需要处理一个可以抛出多个异常的函数。对于我捕获的每个异常,我都有一些代码可以专门处理它。

但是,我也有一些代码,无论捕获到哪个异常,我都想运行。我当前的解决方案是从每个 except block 调用的 handle_exception() 函数。

try:
throw_multiple_exceptions()
except FirstException as excep:
handle_first_exception()
handle_exception()
except SecondException as excep:
handle_second_exception()
handle_exception()

有更好的方法吗?我希望代码看起来像这样:

try:
throw_multiple_exceptions()
except FirstException as excep:
handle_first_exception()
except SecondException as excep:
handle_second_exception()
except Exception as excep:
handle_exception()

最佳答案

怎么样PEP 0443 ?它很棒,而且非常可扩展,因为您所要做的就是编写代码并注册新的处理程序

from functools import singledispatch
@singledispatch
def handle_specific_exception(e): # got an exception we don't handle
pass

@handle_specific_exception.register(Exception1)
def _(e):
# handle exception 1

@handle_specific_exception.register(Exception2)
def _(e):
# handle exception 2

try:
throw_multiple_exceptions()
except Exception as e:
handle_specific_exception(e)
handle_exception()

关于python - 处理多个异常时共享 Python 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34796808/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com