文档

错误信息

更新时间:

收到交易的结果后,若交易执行不正确,可以根据错误码去定位错误原因。

  • ErrorCoderesponseerrorCode 字段用来表示交易发送或者执行错误的原因。

  • 当发送的请求是交易相关的内容时,可根据交易的返回值字段获得关于交易执行错误更详细的错误码。

以部署合约为例:

// 同步执行
DeployContractResponse response = sdk.getContractService().deployContract(request);
// 作为交易是否发送成功的标志。若交易发送失败,可通过result.getErrorCode() 获取错误码。
assertTrue(response.isSuccess());
// 0 代表交易执行成功,反之代表交易执行失败,可通过 result 的值从 ErrorCode 对象中查找错误原因。
assertEquals(0, response.getTransactionReceipt().getResult());

// 异步执行
int result = sdk.getContractService().asyncDeployContract(
    request,
    new IAsyncCallback() {
      @Override
      public void onResponse(int errorCode, Response response) {
        // errorCode 等于 0 表示收到平台的响应,20072 表示消息超时,30018 表示消息超过了队列最大值(需考虑设置 NetworkOption.threadPoolQueueSize 的值)
        assertEquals(0, errorCode);  
        // 作为交易是否发送成功的标志。若交易发送失败,可通过 result.getErrorCode() 获取错误码。
        assertTrue(response.isSuccess());
        // 0 代表交易执行成功,反之代表交易执行失败,可通过 result 的值从 ErrorCode 对象中查找错误原因。
        // 注意回调的 response 需转换为请求的响应,比如: DeployContractRequest对应的是DeployContractResponse
        assertEquals(0, deployContractResponse.getTransactionReceipt().getResult());
      }
});
  • 本页导读 (0)