You need to enable JavaScript to run this app.
导航

异常处理(Android SDK)

最近更新时间2024.02.04 18:31:01

首次发布时间2022.12.01 16:31:40

通过 TOS Android SDK 接口向 TOS 服务端发送请求,请求响应中会包含当前请求操作的返回码,用于标识当前请求的响应状态。TOS 服务遵循 HTTP 规范。

TOS 服务端错误

TOS 服务端遵循 HTTP 规范,对于请求失败的场景定义了详细的 HTTP 状态码和业务错误码,详细内容请参见TOS 服务端状态码和错误码定义

SDK 自定义异常/错误

捕获 TosException 并获取错误码 Code、HTTP 状态码 StatusCode 等,示例代码如下。

/**
* TOS Android SDK 封装了 TosException,并派生出三种 Exception
* TosServerException:TOS 服务端产生的异常,具体异常信息可查看“错误码及处理措施”一节
* TosClientException:TOS Android SDK 客户端抛出的异常,一般在校验/解析输入参数、构造 TOS 请求、解析结果时抛出,出现此异常可检查输入参数是否有误
* UnexpectedStatusCodeException:TOS 非预期的错误码
* 
* SDK 接口统一抛出 TosException,可通过以下代码获取错误码
**/

// 方式一
try{
/* your code */
} catch(TosException e){
    /**
    * 只有当 Exception 为 TosServerException 时,才会获得具体错误码,其他 Exception 得到空字符串 ""
    **/
    Log.e("TosException", e.getCode()); // 错误码
    
    /**
    * 只有当 Exception 为 TosServerException 或 UnexpectedStatusCodeException 时,才会获得具体状态码,TosClientException 得到 0
    **/
    Log.e("TosException", e.getStatusCode()); // HTTP 状态码
    
    Log.e("TosException", e.toString()); // Exception 信息
}

// 方式二
try{
/* your code */
} catch(TosServerException e){
  
    Log.e("TosException", e.getCode()); // 错误码
    
    Log.e("TosException", e.getStatusCode()); // HTTP 状态码
} catch(TosClientException e){
    Log.e("TosException", e.toString()) // Exception 信息
} catch(TosException e) {
    Log.e("TosException", e.toString()) // Exception 信息
}