gpt4 book ai didi

python - 尝试在 python 中捕获编码模式

转载 作者:行者123 更新时间:2023-11-28 19:55:56 25 4
gpt4 key购买 nike

我正在处理一组第 3 方 python 脚本。我注意到这种枚举许多不同异常类的一般模式,没有采取不同的操作,但记录了将被捕获的异常的字符串表示形式。

except AttributeError as ae:
print("Attribute Error while processing the configuration file!\n{0}\n".format( str(ae) ) )
intReturnValue = 1
except IndexError as ie:
print("Index Error while processing the configuration file!\n{0}\n".format( str(ie) ) )
intReturnValue = 1
except NameError as ne:
print("Name Error while processing the configuration file!\n{0}\n".format( str(ne) ) )
intReturnValue = 1
except TypeError as te:
print("Type Error while processing the configuration file!\n{0}\n".format( str(te) ) )
intReturnValue = 1
except:
print("Unexpected error while processing the configuration file!\n{0}\n".format( sys.exc_info()[0] ) )
intReturnValue = 1

这种模式是某种 pythonism 还是只是作者?似乎 python 允许你有一个通用的 case catch block 。在这种情况下,只使用它并更动态地生成日志消息不是更简单吗?

最佳答案

哇,那是非常糟糕的代码。您当然可以一次捕获一系列异常并记录它们:

except (AttributeError, IndexError, NameError, TypeError) as e:
print "%s was raised... " % (e.__class__.__name__)

当然,您随后可能应该确定为什么该代码需要捕获所有这些不同的异常类型。这听起来像是处理代码本身存在严重错误。

关于python - 尝试在 python 中捕获编码模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22364472/

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