我针对 Java Google App Engine 1.6.4.1 API 编写了一些代码,为了让我的代码能够编译,我必须处理很多异常,例如 ConcurrentModificationException。我升级到 1.6.5,现在我可以删除大部分异常处理程序,并且我的代码编译得很好。到底是怎么回事?
更新:不再抛出几类异常;因为这可能是由于不同的异常原因而发生的,这里是不再被抛出的异常
IllegalArgumentException
非法状态异常
数据存储故障异常
并发修改异常
以下是有人在 GAE 中获得 IllegalArgumentException 的示例:Google App Engine - “java.lang.IllegalArgumentException: 数据存储事务或写入太大。” 这不能再发生了吗?
事务接口文档说您可以在执行 commit() 时获得最后三个中的任何一个:https ://developers.google.com/appengine/docs/java/javadoc/com/google/appengine/api/datastore/交易#commit()
抛出:
java.lang.IllegalStateException - 如果事务已经提交、回滚、提交或回滚正在进行中(通过异步调用),或者尝试提交或回滚已经失败。如果在调用此方法时有任何未完成的异步数据存储调用,则此方法将在这些调用完成后阻塞,然后再继续。
DatastoreFailureException - 如果发生数据存储错误。
java.util.ConcurrentModificationException - 如果其他一些事务同时修改了相同的实体组。
然而,我不再需要处理它们来编译我的代码。这似乎很奇怪。