【问题标题】:how to handle JDO app engine transaction ConcurrentModificationException如何处理 JDO 应用引擎事务 ConcurrentModificationException
【发布时间】:2012-07-27 09:54:38
【问题描述】:

文档@@https://developers.google.com/appengine/docs/java/datastore/transactions 解释了如何使用低级 API 处理 DatastoreTimeoutException、ConcurrentModificationException 或 DatastoreFailureException,但是如果我使用 JDO,我该如何处理它们,它们是直接抛出还是包装在 JDO 异常中?

【问题讨论】:

    标签: google-app-engine google-cloud-datastore jdo


    【解决方案1】:

    从 JDO 方法抛出的任何异常都是 JDOExceptions(在适当的情况下带有嵌套异常)。您可以通过阅读 JDO 规范轻松验证...

    【讨论】:

    • 我在第一个嵌套异常中看到了一些异常检查,在 2 级嵌套异常中看到了一些异常 [getCause().getCause()],这也令人困惑,我怎么知道确切的位置期望这些异常是
    • Google 的数据存储代码抛出的根异常将被包装在另一种异常中,但您不应该假设会出现在什么级别。因此,在检查异常时,使用 Exception.getCause() 遍历原因列表以查找 ConcurrentModificaitonException。顺便说一句,Google 的 Appengine 文档说 DatastoreTimeoutException 和 DatastoreFailureExcption 也应该重试(这种情况很少见,但仍有可能发生)。
    猜你喜欢
    • 1970-01-01
    • 2012-04-20
    • 2012-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-21
    • 1970-01-01
    • 2012-11-10
    相关资源
    最近更新 更多