gpt4 book ai didi

python - 是否可以在 Python 中引发内置异常,但使用不同的消息?

转载 作者:IT老高 更新时间:2023-10-28 20:27:41 25 4
gpt4 key购买 nike

是否可以提出 built-in exception带有自定义文本?或提出 built-in warning还带有自定义文本?

文档内容如下:

exception ValueError: Raised when a built-in operation or function receives an argument (…)

是否暗示 only 内置操作应该引发 ValueError 异常?

在实践中,我理解创建一个继承自 ValueError 或 Exception 的异常类是安全的。但是不这样做可以吗,直接抛出ValueError("custom text")?

由于 ValueError 是内置的,与自定义异常类型(类似于“ValueErrorSpecificModule”,不是标准的)相比,引发 ValueError(带有自定义文本)可以让用户快速查看涉及的问题类型。

最佳答案

执行以下操作在操作上没有任何问题:

raise ValueError("invalid input encoding")

事实上,当我编写一些代码的第一遍时,我经常这样做。这样做的主要问题是你的代码的客户很难准确处理他们的异常。为了捕捉特定的异常,他们必须对捕捉到的异常对象进行字符串匹配,这显然是脆弱而乏味的。因此,最好引入自己的 ValueError 子类;这仍然可以作为 ValueError 捕获,但也可以作为更具体的异常类。

一般的经验法则是,只要您有如下代码:

raise ValueError('some problem: %s' % value)

您可能应该将其替换为以下内容:

class SomeProblem(ValueError):
"""
Raised to signal a problem with the specified value.
"""
# ...
raise SomeProblem(value)

你可能会说异常类型指定了什么出了问题,而消息/属性指定了如何出了问题。

关于python - 是否可以在 Python 中引发内置异常,但使用不同的消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2180577/

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