android - 如何捕捉 Amazon AWS 错误 Android

标签 android amazon-web-services exception amazon-simpledb

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

原因:状态代码:400,AWS 服务:AmazonSimpleDB,AWS 请求 ID:c5cb109d-bbff-fcea-bc0d-0cb60ff8f6af,AWS 错误代码:RequestExpired,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 始终为 null,因此我无法从中提取任何信息。

其他代码:

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

最佳答案

显然这就是我需要的。 SDb 跟踪“RequestExpired”,S3 使用“RequestTimeTooSkewed”

此外,这似乎是因为系统时间与 AWS 服务器的时间相差 >15 分钟。我给用户留言检查他们的时间并尽可能使用“自动”日期/时间。自己测试了一下,重现了错误和解决方法。

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

关于android - 如何捕捉 Amazon AWS 错误 Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10963292/

相关文章:

python - 获取 int(some_variable) 可能导致的所有异常

c++ - 链接到 MFC 项目的没有 mfc 的 C++ 静态库是否抛出 bad_alloc 或 CMemoryException*?

android - 无效的空头购买代币

安卓 M : How to get all processes UID's?

html - 如何更新托管在 aws s3 上的网站的网页?

json - EC2 实例类型的 AWS Cloudformation 模板错误

PHP 异常而不是错误

java - Android Java : . setText() 每 x 毫秒

android - 使用截击将视频上传到android中的服务器

python - 在AWS lambda函数中使用scrapy作为层