Revision 1 as of 2009-12-12 06:02:03

Clear message
Locked History Actions

guice/Manual/BestPractices/BeCarefulAboutIoInProviders

プロバイダ内でのI/Oに注意

プロバイダインターフェースは呼び出し側にとって便利なものであるが、しかしセマンティックスを欠いている。

  • プロバイダはチェック例外を提供しない。もし特定のタイプのエラーから復旧する必要のあるコードを記述している場合、TransactionRolledbackExceptionをキャッチすることはできない. ProvisionException allows you to recover from general provision failures, and you can iterate its causes, but you can't specify what those causes may be.

  • プロバイダはタイムアウトをサポートしない。
  • プロバイダは再試行ストラテジを持たない。値が容易されていないときに、get()を複数回呼び出すことは複数のエラーを起こすことになる。

ThrowingProviders はGuice-Extensionであり、Exceptionを投げるプロバイダである。It allows failures to be scoped, so a failed lookup only happens once per request or session.