收到交易的结果后,若交易执行不正确,可以根据错误码去定位错误原因。
ErrorCode:response中errorCode字段用来表示交易发送或者执行错误的原因。- 当发送的请求是交易相关的内容时,可根据交易的返回值字段获得关于交易执行错误更详细的错误码。
以部署合约为例:
// 同步执行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() {@Overridepublic 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 对应的是 DeployContractResponseassertEquals(0, deployContractResponse.getTransactionReceipt().getResult());}});
该文章对您有帮助吗?