我使用的是 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:
# ...
关于Python 条件异常消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30970905/