Python 条件异常消息

标签 python

我使用的是 Python 2.7,不熟悉自定义异常。我已经尽可能多地阅读了它们,但没有找到对这个特定问题的太多帮助。

我正在调用一个 API,该 API 会返回包含大多数响应的状态代码。例如0表示成功,1表示参数个数错误,2表示参数缺失等。

当我收到回复时,我会检查状态以确保在出现问题时我不会继续。我一直在提出一个通用异常,例如:

if response.get('status') != 0:
    print 'Error: Server returned status code %s' % response.get('status')
    raise Exception

如何创建一个自定义异常来查找状态代码是什么并将其作为异常错误消息的一部分返回?我设想的是这样的:

if response.get('status') != 0:
    raise myException(response.get('status'))

最佳答案

因此,您可以通过子类化Exception 来定义自定义异常类:

示例:

class APIError(Exception):
    """An API Error Exception"""

    def __init__(self, status):
        self.status = status

    def __str__(self):
        return "APIError: status={}".format(self.status)


if response.get('status') != 0:
    raise APIError(response.get('status'))

通过继承所有默认/内置异常的标准 Exception 类,您还可以很容易地捕获自定义异常:

try:
    # ...
except APIError as error:
    # ...

参见:User-defined Exceptions

关于Python 条件异常消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30970905/

相关文章:

python - 如何在 PyCharm 中禁用此示例程序?

多处理可能导致 Python defaultdict 行为?

python - 在 OS X 上安装 Numba 时出错

python - 如何向我的文本编辑器添加额外的语法突出显示/着色

python - int() 参数必须是字符串、类似字节的对象或数字,而不是 'QuerySet'

python - 为什么 python 不将标准输入输入作为字典读取?

python - Tkinter 中按钮的透明背景

python - 如何使用没有孔的 TimeSeries 为 "holes"索引 DataFrame

python - 在 Mechanize 中获取 '407 Proxy Authentication requires' 错误

python - 复制具有相同属性的 tensorflow 层以形成图