如何捕获亚马逊AWS错误Android



我不断收到错误报告(来自用户),例如:

原因:状态代码:400、AWS 服务:AmazonSimpleDB、AWS 请求 ID:c5cb109d-bbff-fcea-bc0d-0cb60ff8f6af、AWS 错误代码:请求已过期、AWS 错误消息:请求已过期。时间戳日期为 2012-06-06T13:19:59.415Z。当前日期为 2012-06-06T14:20:03Z

显然这是因为用户设置了错误的时区或某些内容?无论如何,我想捕获此特定错误并向用户发布一条消息,要求他们检查他们的时区设置,但我找不到一种方法。如果我捕获AmazonServiceException,则错误显示为null。

如何根据状态代码甚至错误代码捕获错误? 我尝试的当前代码如下所示:

try {
        dostuff()
    } catch (IOException e) {
        updateAWS("DownloadErrors");
        return "filenotfound";
    } catch (AmazonServiceException e) {
        return "downloadfail";
    }

但是,AmazonServiceException e 始终为空,因此我无法从中提取任何信息。

其他代码:

private void doStuff() throws IOException, AmazonServiceException{ 
//code here
}

显然这就是我需要的。 SDb 跟踪"RequestExpire",S3 使用"RequestTimeTooSkewed"

此外,发生这种情况似乎是因为系统时间与 AWS 服务器相差>15 分钟。 我给用户放了一个注释来检查他们的时间,并在可能的情况下使用"自动"日期/时间。 自己测试并重现了错误以及解决方案。

try {
        result = doOperations();
    } catch (AmazonServiceException e) {
        if (e.getErrorCode().equals("RequestExpired") || e.getErrorCode().equals("RequestTimeTooSkewed")) {
            result = "timestamp";
        }
        }
    return result;
}

相关内容

  • 没有找到相关文章

最新更新