【发布时间】:2012-05-19 02:43:08
【问题描述】:
我针对 Java Google App Engine 1.6.4.1 API 编写了一些代码,为了让我的代码能够编译,我必须处理很多异常,例如 ConcurrentModificationException。我升级到 1.6.5,现在我可以删除大部分异常处理程序,并且我的代码编译得很好。怎么回事?
更新:不再抛出几类异常;因为这可能是由于不同的原因导致不同的异常而发生的,这里是不再被抛出的异常
IllegalArgumentException
IllegalStateException
DatastoreFailureException
ConcurrentModificationException
以下是有人在 GAE 中获得 IllegalArgumentException 的示例:Google App Engine - "java.lang.IllegalArgumentException: datastore transaction or write too big." 这种情况不能再发生了吗?
事务接口文档说你可以在执行 commit() 时获得最后三个中的任何一个:https://developers.google.com/appengine/docs/java/javadoc/com/google/appengine/api/datastore/Transaction#commit()
投掷:
java.lang.IllegalStateException - 如果事务已经 提交、回滚、提交或回滚正在进行中(通过 异步调用),或者尝试提交或回滚已经失败。 如果在此方法运行时有任何未完成的异步数据存储调用 调用时,此方法将在这些调用完成时阻塞 在继续之前。
DatastoreFailureException - 如果发生数据存储错误。
java.util.ConcurrentModificationException - 如果有其他事务 同时修改了相同的实体组。
但我不再需要处理它们来编译我的代码。这似乎很奇怪。
【问题讨论】:
标签: java google-app-engine exception-handling google-cloud-datastore