错误码
错误码,是对各类错误场景进行的归类。以下是量化功能设定的错误码和对应的场景,您可以通过示例中的方法,识别和处理异常错误。
错误码枚举
错误码枚举类 ErrCode
| 错误码枚举 | 错误码枚举对应场景 |
|---|---|
| ExceedReqLimit | 请求过于频繁,触发频率限制 |
| ReqTimeout | 接口请求超时 |
| NoQuoteRight | 行情权限不足 |
| InvalidArgument | 无效参数(参数校验失败) |
| ReqFailed | 接口请求失败 |
| NoDataAvailable | 无数据(返回数据是 NA) |
| EmptySymbol | 参数 symbol 为空 |
| Unknow | 未知错误 |
示例
量化功能已经为各种错误情况定义了一组错误码,在您使用时,可以针对返回的不同错误码执行相应的处理逻辑。
以下是一个示例说明如何使用错误码对异常错误的处理:
try:
a = current_price(code=Con"US.AAPL")
# 标的的写法有误(正确写法为 Contract("US.AAPL")),触发无效参数的报错
except APIException as ex:
if ex.err_code == ErrCode.ExceedReqLimit:
print("请求过于频繁,触发频率限制")
elif ex.err_code == ErrCode.ReqTimeout:
print("接口请求超时")
elif ex.err_code == ErrCode.NoQuoteRight:
print("行情权限不足")
elif ex.err_code == ErrCode.InvalidArgument:
print("无效参数(参数校验失败)")
elif ex.err_code == ErrCode.ReqFailed:
print("接口请求失败")
elif ex.err_code == ErrCode.NoDataAvailable:
print("无数据(返回数据是NA)")
elif ex.err_code == ErrCode.EmptySymbol:
print("参数symbol为空")
elif ex.err_code == ErrCode.Unknown:
print("未知错误")
else:
print("可能存在其他错误")
在上述示例中,在获取最新价格时,由于标的格式填写错误,系统会返回 “InvalidArgument” 的错误码。根据第 12 行,会在日志中打印 “无效参数(参数校验失败)”。
参考上述示例,您可以在捕捉到相应的错误码后,执行期望的处理逻辑。