我正在清理一些代码,并且遇到了一些在 try/except 中有重复清理操作的情况:
try:
...
except KeyError , e :
cleanup_a()
cleanup_b()
cleanup_c()
handle_keyerror()
except ValuesError , e :
cleanup_a()
cleanup_b()
cleanup_c()
handle_valueerror()
我想让这些更加标准化,以提高可读性和维护性。“清理”操作似乎是块本地的,因此执行以下操作不会更清洁(尽管它会标准化一点):
def _cleanup_unified():
cleanup_a()
cleanup_b()
cleanup_c()
try:
...
except KeyError , e :
_cleanup_unified()
handle_keyerror()
except ValuesError , e :
_cleanup_unified()
handle_valueerror()
任何人都可以提出替代方法来解决这个问题吗?