通过本文您可以了解SDK的错误处理方式、异常分类以及重试策略。

错误处理方式

智能媒体管理的SDK目前采用“异常”的方式处理错误,如果调用接口没有抛出异常,则说明操作成功,否则失败。

异常分类

异常由SDK定义,用于处理服务自身逻辑错误的异常。SDK可能出现的异常包括如下几类:
  • 由服务端返回的错误或者SDK向服务端发出请求时网络错误(例如网络连接不通、服务端返回超时等)

    该类错误由SDK处理并包装在统一的ClientException类抛出给用户处理。关于此类错误的更多信息请参见通用错误码和各个API接口的错误码。返回的错误格式如下:

    • 错误代码(Error Code):如果错误是服务端返回的错误,则错误代码与API返回的错误代码一致;如果错误是SDK网络请求错误,则错误代码为“RequestError”。
    • 错误消息(Error Message):如果错误是服务端返回的错误,则错误消息与API返回的错误消息一致;如果错误是SDK网络请求错误,则错误消息为“request is failed.”。
    • 错误请求ID(Request Id):当前错误对应于服务端的请求ID。该请求ID只有在服务端返回错误消息时有效,否则为空字符串。当遇到错误请求时,请提交工单并提供该请求ID用于问题追踪和定位。
  • 由SDK自身产生的与平台及语言相关的错误(例如内存溢出等)

    该类错误SDK不会处理,直接抛出平台及语言的Native Exception类给用户处理。

重试策略

使用SDK访问服务端时可能会由于网络临时中断、传输延时过长、服务端处理过慢等原因导致请求失败。目前此类错误均直接以异常抛出,服务内部并未对此做任何重试逻辑。所以您需要在使用SDK时自定义相应的处理逻辑,例如重试请求或者直接报错等。