gpt4 book ai didi

python - 这是定义和使用 Python 异常的合适方法吗?

转载 作者:太空宇宙 更新时间:2023-11-03 13:51:43 24 4
gpt4 key购买 nike

我只是想确保我以正确的“pythonic”方式执行此操作 - 我想确保我已经正确地定义 - 并正在使用 - 这个异常类。特别是 eval(repr()) 逻辑 - 它主要是为了清洁,我理解为什么你最终会在 repr() 返回的字符串周围加上引号,但我不喜欢记录它们。

class IPCClientError(Exception):
""" General IPC Client Exception class """
def __init__(self, value = "Unspecified error"):
self.val = value + ", see IPC client log for details."

def __str__(self):
return eval(repr(self.val))

当我引发异常时,我使用类似的东西:

raise IPCClientError("Socket error")

然后调用方法会是这样的:

except IPCClientError, exc:
self.log.error(str(exc))
return ERROR

最佳答案

eval(repr(self.val))

呃,你想在这里完成什么? self.val 不是已经应该是一个字符串了吗?

避免 repr 附加引号的方法是首先不使用它。

如果您担心传递给构造函数的值不是字符串,好吧 - 无论如何它在构造函数中都会失败(尽管 unicode 狡辩),您只会得到一个TypeError 在您的自定义异常出现之前引发。

至于如何处理异常,异常处理是一门艺术,真的不是这个空间可以涵盖的东西......

关于python - 这是定义和使用 Python 异常的合适方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7232234/

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