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." これはもう発生しませんか?
Transaction Interface のドキュメントには、commit() を実行すると、最後の 3 つのいずれかを取得できると記載されています: https://developers.google.com/appengine/docs/java/javadoc/com/google/appengine/api/datastore/トランザクション#commit()
スロー:
java.lang.IllegalStateException - トランザクションがすでにコミットまたはロールバックされているか、(非同期呼び出しによって) コミットまたはロールバックが進行中の場合、またはコミットまたはロールバックの試行が既に失敗した場合。このメソッドが呼び出されたときに未処理の非同期データストア呼び出しがある場合、このメソッドは処理を進める前にそれらの呼び出しの完了をブロックします。
DatastoreFailureException - データストア エラーが発生した場合。
java.util.ConcurrentModificationException - 他のトランザクションが同じエンティティ グループを同時に変更した場合。
それでも、コードをコンパイルするためにそれらを処理する必要はなくなりました。これは奇妙に思えます。